ChangeSet@1.2272, 2005-01-09 17:36:05-08:00, gerg@snapgear.com [PATCH] m68knommu: include module.h to cleanup warnings in checksum.c Include module.h to cleanup compiler warnings. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2271, 2005-01-09 17:35:53-08:00, gerg@snapgear.com [PATCH] m68knommu: remove use of obsolete MAP_NR macro processor.h Remove use of obsolate MAP_NR macro. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2270, 2005-01-09 17:35:39-08:00, gerg@snapgear.com [PATCH] m68knommu: remove unused include/asm-m68knommu/nap.h Remove unused header file from include/asm-m68knommu. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2269, 2005-01-09 17:35:26-08:00, gerg@snapgear.com [PATCH] m68knommu: convert use of KTHRAD_SIZE to THREAD_SIZE in process.c Convert KTHREAD_SIZE to THREAD_SIZE. Patch original submitted by Philippe De Muyter Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2268, 2005-01-09 17:35:10-08:00, gerg@snapgear.com [PATCH] m68knommu: optimized bitops operations for m68knommu Here is a patch to provide faster bitops for m68knommu, using bset/bclr/bchg and btst instructions, that do test-and-set on m68k and coldfire processors. We do thus avoid the need for local_irq_save/local_irq_restore. Patch original submitted by Philippe De Muyter . Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2267, 2005-01-09 17:34:56-08:00, gerg@snapgear.com [PATCH] m68knommu: convert KTHRAD_SIZE to THREAD_SIZE and remove unused macros Convert KTHREAD_SIZE to THREAD_SIZE. Remove obsolate MAP_NR and VALID_PAGE macros. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2266, 2005-01-09 17:34:42-08:00, gerg@snapgear.com [PATCH] m68knommu: comment formating change to linker script Fix comment formatting in m68knommu linker script. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2265, 2005-01-09 17:34:30-08:00, gerg@snapgear.com [PATCH] m68knommu: export lib udelay symbol for modules Export the udelay symbol so modules get access to it as well. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2264, 2005-01-09 17:34:17-08:00, gerg@snapgear.com [PATCH] m68knommu: remove duplicate and unused entries in Kconfig Remove duplicate M5275EVB entry. Remove unused HIMEMKERNEL config option. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2263, 2005-01-09 17:34:02-08:00, gerg@snapgear.com [PATCH] m68knommu: remove unused keyboard.h Remove unused keyboard.h include. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2262, 2005-01-09 17:33:49-08:00, gerg@snapgear.com [PATCH] m68knommu: remove unneccessary SUN conditionals from m68knommu/elf.h Remove unneccessary SUN conditionals from m68knommu elf.h. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2261, 2005-01-09 17:33:33-08:00, gerg@snapgear.com [PATCH] m68knommu: remove use of obsolete MAP_NR macro Remove use of obsolete MAP_NR macro. Signed-off-by: Greg Ungerer Signed-off-by: Linus Torvalds ChangeSet@1.2259, 2005-01-10 00:17:05+00:00, nico@org.rmk.(none) [ARM PATCH] 2369/1: remove some cruft Patch from Nicolas Pitre Those defines are incomplete and not using them by instead using the explicit flags makes for clearer code. Signed-off-by: Nicolas Pitre Signed-off-by: Russell King ChangeSet@1.2258, 2005-01-09 23:57:38+00:00, rmk@flint.arm.linux.org.uk [ARM] Move common CPU initialisation into head.S ChangeSet@1.2257, 2005-01-09 19:39:16+00:00, rmk@flint.arm.linux.org.uk [ARM] Rehash initial kernel setup code. Essentially, this set of changes: 1. makes the register usage in head.S more sane 2. makes way for passing the location of the tagged list via "r2" (as the booting document suggests) ChangeSet@1.2256, 2005-01-09 11:23:21+00:00, rmk@flint.arm.linux.org.uk [ARM] Minor white space cleanup ChangeSet@1.2255, 2005-01-09 11:13:19+00:00, rmk@flint.arm.linux.org.uk [ARM] Ensure we do not remap pages outside the allocated range. ChangeSet@1.2254, 2005-01-08 20:26:48-08:00, torvalds@evo.osdl.org Re-use the buffer page for pipe data. This brings the latency back to previous levels, and in fact seems to drive it a bit lower. ChangeSet@1.2253, 2005-01-08 19:59:53-08:00, alan@lxorguk.ukuu.org.uk [PATCH] SDLA firmware upgrade should require CAP_SYS_RAWIO (not just CAP_NET_ADMIN) There were a few variants on the list trying to work out what the valid ranges to verify for write are but they sort of missed the point, if you can load new firmware you can have fun anyway. ChangeSet@1.2252, 2005-01-08 17:10:33-08:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/libata-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2251, 2005-01-08 17:09:19-08:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/net-drivers-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2250, 2005-01-08 17:05:23-08:00, torvalds@ppc970.osdl.org Merge bk://gkernel.bkbits.net/misc-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2247.5.206, 2005-01-08 16:06:16-08:00, akpm@osdl.org [PATCH] Fix ppc64 !HOTPLUG_CPU build idle_task_exit() only exists when CONFIG_HOTPLUG_CPU is enabled ChangeSet@1.2247.5.205, 2005-01-08 14:35:06-08:00, bunk@stusta.de [PATCH] OSS: misc cleanups The patch below contains cleanups under sound/oss/ including the following: - make needlessly global code static - kill cs4232.h (it contained two function prototypes: one is now static and the other one was already stale) - removed the following unused global functions: - cs4232.c: init_cs4281 - emu10k1/hwaccess.c: sumVolumeToAttenuation - emu10k1/hwaccess.c: emu10k1_set_stop_on_loop - sb_common.c: sb_dsp_disable_midi - sb_common.c: sb_dsp_disable_recording - wavfront.c: attach_wffx - cs46xx.c: #ifndef CS46XX_ACPI_SUPPORT cs46xx_pm_callback - emu10k1/hwaccess.c: #ifdef DBGEMU emu10k1_writefn0_2 - opl3sa2.c: remove the unused struct opl3sa2_dev - removed the following unused EXPORT_SYMBOL's: - ac97.c: ac97_set_mixer - ac97.c: ac97_get_register - ac97.c: ac97_get_mixer_scaled - sb_common.c: sb_dsp_disable_midi Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.204, 2005-01-08 14:34:47-08:00, bunk@stusta.de [PATCH] init/initramfs.c: make unpack_to_rootfs static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.203, 2005-01-08 14:34:30-08:00, a.othieno@bluewin.ch [PATCH] arch/alpha/Kconfig: Kill stale reference to Documentation/smp.tex This reference to the long gone Documentation/smp.tex somehow evaded Randy's cleanup from circa March. This marks off the last of those stale references. Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.202, 2005-01-08 14:34:14-08:00, bunk@stusta.de [PATCH] bttv-driver.c: make some variables static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.201, 2005-01-08 14:33:56-08:00, wli@holomorphy.com [PATCH] remove CT_TO_SECS()/CT_TO_USECS() CT_TO_SECS() and CT_TO_USECS() are used nowhere in the tree. This patch removes them. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.200, 2005-01-08 14:33:39-08:00, bunk@stusta.de [PATCH] remove IN_STRING_C IN_STRING_C was an i386-specific hack by Andi Kleen to provide out-of-line versions of some lib/string.c functions that aren't directly used on i386 (because there are inline assembly versions). This can cause problems if gcc chooses to transparently replace a call to one string function with a call to another string function (the example Andi gave was a replacement of a sprintf call with a strcpy call) which generates a function call to the replacement function. The problems observed by Andi only occur in recent kernels without -fno-unit-at-a-time. With -ffreestanding it can't even cause any problems in case we'd one day drop the -fno-unit-at-a-time since gcc mustn't assume in a freestanding environment that all standard C library functions are available. The effect of this patch is a small space saving in the kernel. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.199, 2005-01-08 14:33:23-08:00, bunk@stusta.de [PATCH] scsi/aic7xxx/: remove two useless variables Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.198, 2005-01-08 14:33:07-08:00, bunk@stusta.de [PATCH] remove unused include/asm-m68k/adb_mouse.h Remove a completely unused header file. Signed-off-by: Adrian Bunk Acked-by: Geert Uytterhoeven Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.197, 2005-01-08 14:32:50-08:00, chrisw@osdl.org [PATCH] binfmt_script.c: make em86_format static This patch by Chris Wright makes the needlessly global struct em86_format static. Signed-off-by: Chris Wright Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.196, 2005-01-08 14:32:35-08:00, bunk@stusta.de [PATCH] befs: #if 0 two unused global functions The patch below #if 0's two unussed global functions. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.195, 2005-01-08 14:32:17-08:00, bunk@stusta.de [PATCH] AFS: afs_voltypes isn't always required afs_voltypes is only used #ifdef __KDEBUG, and even then it doesn't has to be a global symbol. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.194, 2005-01-08 14:32:00-08:00, bunk@stusta.de [PATCH] cris: remove kernel 2.0 #ifdef's Remove some kernel 2.0 #ifdef's from arch/cris/arch-v10/kernel/fasttimer.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.193, 2005-01-08 14:31:43-08:00, olh@suse.de [PATCH] fix typo and email in SAK.txt Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.192, 2005-01-08 14:31:26-08:00, bunk@stusta.de [PATCH] some parport_pc.c cleanups The patch below makes the following changes to drivers/parport/parport_pc.c : - make some needlessly global functions static - #if 0 two currently unused functions Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.191, 2005-01-08 14:31:09-08:00, bunk@stusta.de [PATCH] prism54: small prismcompat cleanup - the FW_LOADER is already guaranteed through the Kconfig file - prism54_synchronize_irq is also #define'd to synchronize_irq in prismcompat24.h, so there's no need for it Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.190, 2005-01-08 14:30:52-08:00, bunk@stusta.de [PATCH] sched.c: remove an unused function The patch below removes an unused function from kernel/sched.c Signed-off-by: Adrian Bunk Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.189, 2005-01-08 14:30:35-08:00, bunk@stusta.de [PATCH] scsi/aic7xxx/aic79xx_osm.c: remove an unused function The patch below removes an unused function from drivers/scsi/aic7xxx/aic79xx_osm.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.188, 2005-01-08 14:30:18-08:00, bunk@stusta.de [PATCH] scsi/ahci.c: remove an unused function The patch below removes an unused function from drivers/scsi/ahci.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.187, 2005-01-08 14:30:01-08:00, bunk@stusta.de [PATCH] sched.c: remove an unused macro Signed-off-by: Adrian Bunk Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.186, 2005-01-08 14:29:45-08:00, bunk@stusta.de [PATCH] DVB av7110_hw.c: remove unused functions The patch below removes three unused functions from drivers/media/dvb/ttpci/av7110_hw.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.185, 2005-01-08 14:29:27-08:00, bunk@stusta.de [PATCH] OSS: remove unused functions The patch below removes some unused functions from OSS. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.184, 2005-01-08 14:29:10-08:00, bunk@stusta.de [PATCH] mark QNX4FS_RW as BROKEN Anders Larsen wrote: If you remove any code inside the #ifdef CONFIG_QNX4FS_RW we might as well remove the option "config QNX4FS_RW" altogether. It's horribly broken, and I don't intend to fix it; while I was thinking about how to properly implement write-support, somebody else went away and did it. As that alternative seems to work well and is being actively maintained, I won't try to reinvent it. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.183, 2005-01-08 14:28:57-08:00, ptushnik@gmail.com [PATCH] Fix kernel/timer.c comment typo Signed-off-by: Vasia Pupkin Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.182, 2005-01-08 14:28:40-08:00, bunk@stusta.de [PATCH] small proc_fs cleanups The patch below does the following cleanups in the proc_fs code: - remove an unused global function - make two functions static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.181, 2005-01-08 14:28:23-08:00, bunk@stusta.de [PATCH] devpts/inode.c: make one struct static The patch below makes struct devpts_file_inode_operations in fs/devpts/inode.c static. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.180, 2005-01-08 14:28:05-08:00, bunk@stusta.de [PATCH] bio.c: make bio_destructor static bio_destructor in fs/bio.c isn't used outside of this file, and after quickly thinking about it I didn't find a reason why it should. The patch below makes it static. Signed-off-by: Adrian Bunk Acked-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.179, 2005-01-08 14:27:43-08:00, bunk@stusta.de [PATCH] binfmt_script.c: make struct script_format static The patch below makes struct script_format in fs/binfmt_script.c static. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.178, 2005-01-08 14:27:26-08:00, bunk@stusta.de [PATCH] ISDN b1pcmcia.c: remove an unused variable drivers/isdn/hardware/avm/b1pcmcia.c: In function `b1pcmcia_init': drivers/isdn/hardware/avm/b1pcmcia.c:203: warning: unused variable `err' Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.177, 2005-01-08 14:27:08-08:00, bunk@stusta.de [PATCH] video drivers: remove unused functions The patch below removes some unused function from drivers/video/ Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.176, 2005-01-08 14:26:51-08:00, bunk@stusta.de [PATCH] watchdog/machzwd.c: remove unused functions The patch below removes unused functions from drivers/char/watchdog/machzwd.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.175, 2005-01-08 14:26:34-08:00, bunk@stusta.de [PATCH] NFS: remove an unused function The patch below removes an unused function from fs/nfsd/nfs3xdr.c Signed-off-by: Adrian Bunk Acked-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.174, 2005-01-08 14:26:17-08:00, bunk@stusta.de [PATCH] media/video/ir-kbd-i2c.c: remove an unused function The patch below removes an unused function from drivers/media/video/ir-kbd-i2c.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.173, 2005-01-08 14:26:00-08:00, bunk@stusta.de [PATCH] floppy.c: remove an unused function The patch below removes an unused function from drivers/block/floppy.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.172, 2005-01-08 14:25:43-08:00, bunk@stusta.de [PATCH] DRM: remove unused functions The patch below removes two unused functions from DRM. Signed-off-by: Adrian Bunk Acked-by: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.171, 2005-01-08 14:25:21-08:00, rddunlap@osdl.org [PATCH] IPMI: use C99 struct inits. Convert IPMI driver struct usage to C99 initializers. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.170, 2005-01-08 14:25:08-08:00, janitor@sternwelten.at [PATCH] ifdef typos mips: AU1[0X]00_USB_DEVICE AU1000_USB_DEVICE appears 3 times. AU1X00_USB_DEVICE appears 44 times, and is nowhere defined. One ifdef starts with "X" version, and ends with "0", so it's quite obvious these is supposed to be one option. Makes you wonder if anybody uses these devices. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.169, 2005-01-08 14:24:51-08:00, janitor@sternwelten.at [PATCH] ifdef typos: drivers_usb_net_usbnet.c Although neither symbol is not defined (yet?); code uses some GENELINK_* (_ACK too), so this seems right. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.168, 2005-01-08 14:24:33-08:00, janitor@sternwelten.at [PATCH] ifdef typos: drivers_net_wireless_wavelan_cs.c wavelan.p.h defines *_ERROR wavelan_cs.p.h defines *_ERRORS Since only second one is included, change #ifdefs Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.167, 2005-01-08 14:24:16-08:00, janitor@sternwelten.at [PATCH] ifdef typos: drivers_char_ipmi_ipmi_si_intf.c CONFIG_ACPI_INTERPETER is wrong. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.166, 2005-01-08 14:23:58-08:00, janitor@sternwelten.at [PATCH] ifdef typos: arch_sh_boards_renesas_hs7751rvoip_io.c CONFIG_HS7751RVOIP_CIDEC is mistyped. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.165, 2005-01-08 14:23:42-08:00, janitor@sternwelten.at [PATCH] ifdef typos: arch_ppc_syslib_ppc4xx_dma.c ppc4xx_dma.h defines PPC4xx_DMA_64BIT. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.164, 2005-01-08 14:23:24-08:00, janitor@sternwelten.at [PATCH] ifdef typos: arch_ppc_platforms_prep_setup.c -another one Obvious typo, FB_VGA16 is from Kconfig. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.163, 2005-01-08 14:23:04-08:00, janitor@sternwelten.at [PATCH] ifdef typos: arch_ppc_platforms_prep_setup.c CONFIG_PREP_PRESIDUAL is mistyped. Signed-off-by: Domen Puncer Acked-by: Randy Dunlap Signed-off-by: Maximilian Attems Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.162, 2005-01-08 14:22:46-08:00, bunk@stusta.de [PATCH] small drivers/media/radio/ cleanups the patch below makes the following cleanups under drivers/media/radio/ : - remove two unused global variables - make some needlessly global code static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.161, 2005-01-08 14:22:28-08:00, bunk@stusta.de [PATCH] small MCA cleanups The patch below does the following cleanups in the MCA code: - make some needlessly global code static - remove three unused global functions from mca-legacy.c (two of them were EXPORT_SYMBOL'ed); this should IMHO be safe since mca-legacy is not an API drivers should move to Signed-off-by: Adrian Bunk Acked-by: James Bottomley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.160, 2005-01-08 14:22:11-08:00, bunk@stusta.de [PATCH] lockd: fix two struct definitions Under fs/lockd/, there are two structs declared extern although they are in the same file. Furtheremore, they don't have to be global since their only users are in the same file. Most of the changes to svc.c are only indent fixes caused by making the struct static. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.159, 2005-01-08 14:21:50-08:00, akpm@osdl.org [PATCH] MODULE_PARM conversions Rusty Russell MODULE_PARM conversions for x86 `allyesconfig'. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.158, 2005-01-08 14:21:13-08:00, akpm@osdl.org [PATCH] MODULE_PARM conversions Rusty Russell MODULE_PARM conversions for x86 `allmodconfig'. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.157, 2005-01-08 14:20:53-08:00, akpm@osdl.org [PATCH] remove early_param test code Remove some unused test code Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.156, 2005-01-08 14:20:35-08:00, bunk@stusta.de [PATCH] fs/coda/psdev.c shouldn't include lp.h Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.155, 2005-01-08 14:20:20-08:00, bunk@stusta.de [PATCH] cdrom.c: make several functions static (fwd) The patch below makes several functions in cdrom.c static. This includes cdrom_is_mrw and cdrom_is_random_writable which were EXPORT_SYMBOL'ed but weren't used anywhere outside of cdrom.h . Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.154, 2005-01-08 14:20:02-08:00, bunk@stusta.de [PATCH] reiser3 cleanups The patch below contains some cleanups for reiser3. It consists of: - removal of unused code - making needlessly global code static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.153, 2005-01-08 14:19:45-08:00, bunk@stusta.de [PATCH] small ftape cleanups The patch below does cleanups under drivers/char/rio/ including the following: - remove some completely unused code - make some needlessly global code static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.152, 2005-01-08 14:19:26-08:00, kraxel@bytesex.org [PATCH] drivers/media/video: the easy cleanups This patch only makes code that is neither mentioned in a header file nor declared extern in another file static. Additionally, it does remove the unused function stradis_driver from stradis.c (or what should the comment mean?). Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.151, 2005-01-08 14:19:09-08:00, kraxel@bytesex.org [PATCH] zoran_device.c: make zr36057_init_vfe static The patch below makes function zr36057_init_vfe in drivers/media/video/zoran_device.c which has no external users static. Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.150, 2005-01-08 14:18:51-08:00, kraxel@bytesex.org [PATCH] media/video/msp3400.c: remove unused struct d1 This struct is simply unused. Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.149, 2005-01-08 14:18:35-08:00, kraxel@bytesex.org [PATCH] zoran_driver.c: make zoran_num_formats static zoran_num_formats was referenced from two other files as extern, but was used in none of them. Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.148, 2005-01-08 14:18:18-08:00, olsimar@wanadoo.fr [PATCH] bttv help fix I found one mistake in the help of bttv in 2.6.10-rc2-bk4 : "I2C bit-banging interfaces" in the character device section. or it's in the device drivers section since 2.6.X. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.147, 2005-01-08 14:18:01-08:00, kraxel@bytesex.org [PATCH] bttv-risc.c: make some functions static The patch below makes some functions in drivers/media/video/bttv-risc.c that currently have no other in-kernel users static. Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.146, 2005-01-08 14:17:44-08:00, kraxel@bytesex.org [PATCH] bttv-i2c.c: make two functions static The patch below makes two functions in drivers/media/video/bttv-i2c.c without external users static. Signed-off-by: Adrian Bunk Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.145, 2005-01-08 14:17:23-08:00, blaisorblade_spam@yahoo.it [PATCH] ext3: use generic_open_file to fix possible preemption bugs Ext3 is currently using a duplicate version of generic_open_file, and this should be fixed, before it gets out of sync. In fact, it *has* got out of sync. Apart some cosmetic changes (which are not a problem), note that it directly reads inode->i_size, while the generic version uses i_size_read(). I'm not sure if this bug can actually be triggered, but here follows a possible scenario: when - a file is brought into inode cache - that file is either truncated or extended (i.e. inode->i_size is changed) and after this it changes it's "more than 2Gb" property, - and process B opens that file in the meanwhile, I suppose the size check can be hurted by a race condition, doesn't it? Similar checks should probably be done for other FS's. Also, ext2 does not have this problem - someone fixed this problem in ext2 but not ext3? How? Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.144, 2005-01-08 14:17:06-08:00, linville@tuxdriver.com [PATCH] oss: AC97 quirk facility Add a quirk facility for AC97 in OSS, and add a quirk list for the i810_audio driver. This allows automatically "correct" behaviour for sound hardware w/ known oddities. For example, many cards have the headphone and line-out outputs swapped or headphone outputs only. The code is stolen shamelessly from ALSA, FWIW... Signed-off-by: John W. Linville From: William Lee Irwin III include/linux/ac97_codec.h:337: warning: `struct pci_dev' declared inside parameter list Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.143, 2005-01-08 14:16:49-08:00, bunk@stusta.de [PATCH] char/cyclades.c: remove unused code The patch below removes unused code from drivers/char/cyclades.c Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.142, 2005-01-08 14:16:32-08:00, bunk@stusta.de [PATCH] telephony/ixj.c cleanup - remove ixj_register and ixj_unregister. these were EXPORT_SYMBOL'ed static (sic) functions it seems the only reason why this "worked" was that there were exactly zero users of them... - remove four local variables that are after this removal no longer required - make five functions that were needlessly global static Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.141, 2005-01-08 14:16:10-08:00, bunk@stusta.de [PATCH] DEBUG_BUGVERBOSE for i386 The patch below implements CONFIG_DEBUG_BUGVERBOSE for i386 (more exactly, it allows disabling the verbose BUG() reporting). Also, require CONFIG_EMBEDDED for this option: we don't want to make it easy for people to disable useful debug info. (With lots of help from Roman Zippel ) Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.140, 2005-01-08 14:15:53-08:00, bunk@stusta.de [PATCH] small char/generic_serial.c cleanup The patch below does the following changes to drivers/char/generic_serial.c : - make two needlessly global functions static - remove the completely unused EXPORT_SYMBOL'ed function gs_do_softint AFAIR the latter should be safe, since drivers are moving away from generic_serial.c. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.139, 2005-01-08 14:15:36-08:00, bunk@stusta.de [PATCH] small drivers/char/rio/ cleanups The patch below does cleanups under drivers/char/rio/ including the following: - remove some completely unused code - make some needlessly global code static - remove #ifndef linux code - remove never enabled #ifdef XPRINT_SUPPORT code - RIOStrlen -> string.h strlen - RIOStrCmp -> string.h strcmp Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.138, 2005-01-08 14:15:18-08:00, jdittmer@ppp0.net [PATCH] btaudio module_param conversion btaudio module_param conversion Signed-off-by: Jan Dittmer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.137, 2005-01-08 14:15:01-08:00, jdittmer@ppp0.net [PATCH] media/video module_param conversion Convert module_param in tda7432 and tda9875. I hope I got the file permissions right. Signed-off-by: Jan Dittmer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.136, 2005-01-08 14:14:44-08:00, jdittmer@ppp0.net [PATCH] sr module_param conversion module_param conversion for SCSI cdrom driver Signed-off-by: Jan Dittmer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.135, 2005-01-08 14:14:27-08:00, jdittmer@ppp0.net [PATCH] isapnp module_param conversion module_param conversion for isapnp Signed-off-by: Jan Dittmer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.134, 2005-01-08 14:14:10-08:00, jdittmer@sfhq.hn.org [PATCH] eth1394 MODULE_PARM conversion Convert MODULE_PARM to module_param Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.133, 2005-01-08 14:13:53-08:00, anton@samba.org [PATCH] update hugetlb documentation The hugetlb documentation includes two example programs however they need some attention. At the moment they are ia64 specific (they use MAP_FIXED which will fail on other architectures), and they contain a number of compiler warnings. Also update the documentation to include the ppc64 page sizes. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.132, 2005-01-08 14:13:36-08:00, james4765@verizon.net [PATCH] tipar: Code cleanup Correct the following issues: - Remove reference to 2.5 kernel code. - Switch some ints to unsigned ints. - Correct KERN_ constants in printk's, and move most to pr_debug & pr_info Fix some >80 column lines and indenting. Compile tested. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.131, 2005-01-08 14:13:20-08:00, james4765@verizon.net [PATCH] tipar: Document driver options Document kernel parameters for tipar driver. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.130, 2005-01-08 14:13:03-08:00, james4765@verizon.net [PATCH] cyclades: Put README.cycladeZ in Documentation/serial Put README.cycladesZ in Documentation/serial. Firmware is still needed, but the README file shouldn't be in drivers/char. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.129, 2005-01-08 14:12:34-08:00, james4765@verizon.net [PATCH] sh: Remove x86-specific help in Kconfig Remove x86-specific bus refernces in arch/sh/drivers/pci/Kconfig. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.128, 2005-01-08 14:12:17-08:00, james4765@verizon.net [PATCH] cpqarray: Correct mailing list address in source code Correct mailing list address in cpqarray source code. Signed-off-by: James Nelson Acked-by: Mike Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.127, 2005-01-08 14:11:59-08:00, james4765@verizon.net [PATCH] cciss: Correct mailing list address in source code Correct mailing list address in cciss source code. Signed-off-by: James Nelson Acked-by: Mike Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.126, 2005-01-08 14:11:42-08:00, james4765@verizon.net [PATCH] cciss: Documentation update Updates to cciss documentation. mkdev.cciss is no longer needed, since it is handled by the MAKEDEV program. Signed-off-by: James Nelson Acked-by: Mike Miller Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.125, 2005-01-08 14:11:25-08:00, pavel@ucw.cz [PATCH] docs: add sparse howto Installing / using sparse is not exactly trivial, this should make setting it up easier. Adapted From: Linus Torvalds Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.124, 2005-01-08 14:11:07-08:00, pavel@ucw.cz [PATCH] pm: remove outdated docs pm_access / pm_dev_idle was removed from recent kernels. This should stop confusion. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.123, 2005-01-08 14:10:50-08:00, james4765@gmail.com [PATCH] riscom8: Update staus and documentation of driver I could not locate the original author or any active support effort being done. This is definitely an orphaned driver. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.122, 2005-01-08 14:10:33-08:00, james4765@gmail.com [PATCH] stallion: Update to Documentation/stallion.txt Some updating and removal of dead links in the text file. The 5.5 package is not carried on the sunsite.unc.edu or tsx-11.mit.edu FTP servers, and the support@stallion.com address bounces. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.121, 2005-01-08 14:10:17-08:00, james4765@gmail.com [PATCH] specialix: remove bouncing e-mail address Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.120, 2005-01-08 14:10:00-08:00, james4765@gmail.com [PATCH] moxa: Remove README.moxa from Documentation/00-INDEX Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.119, 2005-01-08 14:09:43-08:00, james4765@gmail.com [PATCH] moxa: Remove ancient changelog README.moxa The driver at Moxa's website is version 1.8. There is no need for this file. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.118, 2005-01-08 14:09:24-08:00, james4765@gmail.com [PATCH] moxa: Update status of Moxa Smartio driver After contacting Moxa, I found out that they no longer maintain the in-kernel driver, and instead maintain an updated driver as an external patch. This patch updates the documentation to reflect this. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.117, 2005-01-08 14:09:06-08:00, tglx@linutronix.de [PATCH] Lock initializer cleanup (Core) Kernel core files converted to use the new lock initializers. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.116, 2005-01-08 14:08:46-08:00, tglx@linutronix.de [PATCH] Lock initializer cleanup (character devices) Character devices converted to use the new lock initializers. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.115, 2005-01-08 14:08:28-08:00, tglx@linutronix.de [PATCH] Lock initializer cleanup (common headers) First part of the patch series. Define initializer macros Often used structures in the kernel are almost all declared and initialized by macros in the form: DEFINE_TYPE(name) Spinlocks and rwlocks are declared and initialized by: type name = INITIALIZER; After converting the runtime initialization of spinlocks/rwlocks to macro form it is consequent to change the declaration and initializion of global and static locks to the macro form too. This conversion identifies those variables as "special", common code controlled entities similar to list_heads, mutexes... Besides consistency and code clearness this also helps automatic lock validators and debugging code. The patch converts -rwlock_t snd_card_rwlock = RW_LOCK_UNLOCKED; +DEFINE_RWLOCK(snd_card_rwlock); and -static spinlock_t slave_active_lock = SPIN_LOCK_UNLOCKED; +static DEFINE_SPINLOCK(slave_active_lock); There is no runtime overhead or actual code change resulting out of this patch, other than a small reduction in the kernel source code size. The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.114, 2005-01-08 14:08:11-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: sound To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.113, 2005-01-08 14:07:54-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Video To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.112, 2005-01-08 14:07:37-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Filesystems To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.111, 2005-01-08 14:07:19-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: drivers/serial To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. This patch removes also a double init in icom.c Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.110, 2005-01-08 14:07:02-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: media drivers To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.109, 2005-01-08 14:06:45-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Raid To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.108, 2005-01-08 14:06:27-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: ISDN To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.107, 2005-01-08 14:06:10-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Firewire To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.106, 2005-01-08 14:05:57-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: RIO To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.105, 2005-01-08 14:05:40-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: character devices To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.104, 2005-01-08 14:05:19-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: DRM To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Acked-by: Dave Airlie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.103, 2005-01-08 14:05:02-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Block devices To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.102, 2005-01-08 14:04:45-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: Misc drivers To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.101, 2005-01-08 14:04:28-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: MIPS To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.100, 2005-01-08 14:04:11-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: M32R To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.99, 2005-01-08 14:03:54-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: IA64 To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Acked-by: "Luck, Tony" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.98, 2005-01-08 14:03:35-08:00, tglx@linutronix.de [PATCH] Lock initializer unifying: ALPHA To make spinlock/rwlock initialization consistent all over the kernel, this patch converts explicit lock-initializers into spin_lock_init() and rwlock_init() calls. Currently, spinlocks and rwlocks are initialized in two different ways: lock = SPIN_LOCK_UNLOCKED spin_lock_init(&lock) rwlock = RW_LOCK_UNLOCKED rwlock_init(&rwlock) this patch converts all explicit lock initializations to spin_lock_init() or rwlock_init(). (Besides consistency this also helps automatic lock validators and debugging code.) The conversion was done with a script, it was verified manually and it was reviewed, compiled and tested as far as possible on x86, ARM, PPC. There is no runtime overhead or actual code change resulting out of this patch, because spin_lock_init() and rwlock_init() are macros and are thus equivalent to the explicit initialization method. That's the second batch of the unifying patches. Signed-off-by: Thomas Gleixner Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.97, 2005-01-08 14:03:18-08:00, akpm@osdl.org [PATCH] invalidate_inode_pages2() mmap coherency fix - When invalidating pages, take care to shoot down any ptes which map them as well. This ensures that the next mmap access to the page will generate a major fault, so NFS's server-side modifications are picked up. This also allows us to call invalidate_complete_page() on all pages, so filesytems such as ext3 get a chance to invalidate the buffer_heads. - Don't mark in-pagetable pages as non-uptodate any more. That broke a previous guarantee that mapped-into-user-process pages are always uptodate. - Check the return value of invalidate_complete_page(). It can fail if someone redirties a page after generic_file_direct_IO() write it back. But we still have a problem. If invalidate_inode_pages2() calls unmap_mapping_range(), that can cause zap_pte_range() to dirty the pagecache pages. That will redirty the page's buffers and will cause invalidate_complete_page() to fail. So, in generic_file_direct_IO() we do a complete pte shootdown on the file up-front, prior to writing back dirty pagecache. This is only done for O_DIRECT writes. It _could_ be done for O_DIRECT reads too, providing full mmap-vs-direct-IO coherency for both O_DIRECT reads and O_DIRECT writes, but permitting the pte shootdown on O_DIRECT reads trivially allows people to nuke other people's mapped pagecache. NFS also uses invalidate_inode_pages2() for handling server-side modification notifications. But in the NFS case the clear_page_dirty() in invalidate_inode_pages2() is sufficient, because NFS doesn't have to worry about the "dirty buffers against a clean page" problem. (I think) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.96, 2005-01-08 14:03:01-08:00, akpm@osdl.org [PATCH] readpage-vs-invalidate fix A while ago we merged a patch which tried to solve a problem wherein a concurrent read() and invalidate_inode_pages() would cause the read() to return -EIO because invalidate cleared PageUptodate() at the wrong time. That patch tests for (page_count(page) != 2) in invalidate_complete_page() and bales out if false. Problem is, the page may be in the per-cpu LRU front-ends over in lru_cache_add. This elevates the refcount pending spillage of the page onto the LRU for real. That causes a false positive in invalidate_complete_page(), causing the page to not get invalidated. This screws up the logic in my new O_DIRECT-vs-buffered coherency fix. So let's solve the invalidate-vs-read in a different manner. Over on the read() side, add an explicit check to see if the page was invalidated. If so, just drop it on the floor and redo the read from scratch. Note that only do_generic_mapping_read() needs treatment. filemap_nopage(), filemap_getpage() and read_cache_page() are already doing the oh-it-was-invalidated-so-try-again thing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.95, 2005-01-08 14:02:44-08:00, rusty@rustcorp.com.au [PATCH] Remove EXPORT_SYMBOL_NOVERS Vadim Lobanov points out that EXPORT_SYMBOL_NOVERS is no longer used; in fact, SH still uses it, but once we fix that, the kernel is clean. Remove it. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.94, 2005-01-08 14:02:27-08:00, hpa@zytor.com [PATCH] raid6: altivec support This patch adds Altivec support for RAID-6, if appropriately configured on the ppc or ppc64 architectures. Note that it changes the compile flags for ppc64 in order to handle -maltivec correctly; this change was vetted on the ppc64 mailing list and OK'd by paulus. Signed-off-by: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.93, 2005-01-08 14:02:09-08:00, david-b@pacbell.net [PATCH] fbdev: rivafb should recognize NF2/IGP I got tired of not seeing the boot time penguin on my Shuttle SN41G2, and not having a decently large text display when I bypass X11. XFree86 says it's "Chipset GeForce4 MX Integrated GPU", and the kernel driver has hooks for this chip ID although it doesn't have a #define to match. Signed-off-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.92, 2005-01-08 14:01:54-08:00, kamezawa.hiroyu@jp.fujitsu.com [PATCH] no buddy bitmap patch revist: for ia64 This patch is for ia64 kernel, and defines CONFIG_HOLES_IN_ZONE in arch/ia64/Kconfig. IA64 has memory holes smaller than its MAX_ORDER and its virtual memmap allows holes in a zone's memmap. This patch makes vmemmap aligned with IA64_GRANULE_SIZE in arch/ia64/mm/init.c. Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.91, 2005-01-08 14:01:35-08:00, kamezawa.hiroyu@jp.fujitsu.com [PATCH] no buddy bitmap patch revisit: for mm/page_alloc.c This patch removes bitmaps from page allocator in mm/page_alloc.c. This buddy system uses page->private field to record free page's order instead of using bitmaps. The algorithm of the buddy system is unchanged. Only bitmaps are removed. In this buddy system, 2 pages,a page and "buddy", can be coalesced when (buddy->private & PG_private) && (page_order(page)) == (page_order(buddy)) && !PageReserved(buddy) && page_count(buddy) == 0 this also means "buddy" is a head of continuous free pages of length of (1 << page_order(buddy)). bad_range() is called from inner loop of __free_pages_bulk(). In many archs, bad_range() is only a sanity check, it will always return 0. But if a zone's memmap has a hole, it sometimes returns 1. An architecture with memory holes in a zone has to define CONFIG_HOLES_IN_ZONE. When CONFIG_HOLES_IN_ZONE is defined, pfn_valid() is called for checking whether a buddy pages is valid or not. Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.90, 2005-01-08 14:01:18-08:00, kamezawa.hiroyu@jp.fujitsu.com [PATCH] no buddy bitmap patch revist: intro and includes Followings are patches for removing bitmaps from the buddy allocator. This is benefical to memory-hot-plug stuffs, because this removes a data structure which must meet to a host's physical memory layout. This is one step to manage physical memory in nonlinear / discontiguous way and will reduce some amounts of codes to implement memory-hot-plug. This patch removes bitmaps from zone->free_area[] in include/linux/mmzone.h, and adds some comments on page->private field in include/linux/mm.h. non-atomic ops for changing PG_private bit is added in include/page-flags.h. zone->lock is always acquired when PG_private of "a free page" is changed. Signed-off-by: KAMEZAWA Hiroyuki Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.89, 2005-01-08 14:01:01-08:00, wli@holomorphy.com [PATCH] vm: for -mm only: remove remap_page_range() completely All in-tree references to remap_page_range() have been removed by prior patches in the series. This patch, intended to be applied after some waiting period for people to adjust to the API change, notice __deprecated, etc., does the final removal of remap_page_range() as a function symbol declared within kernel headers and/or implemented in kernel sources. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.88, 2005-01-08 14:00:48-08:00, neilb@cse.unsw.edu.au [PATCH] md: improve 'hash' code in linear.c The hashtable that linear uses to find the right device stores two pointers for every entry. The second is always one of: The first plus 1 NULL When NULL, it is never accessed, so any value can be stored. Thus it could always be "first plus 1", and so we don't need to store it as it is trivial to calculate. This patch halves the size of this table, which results in some simpler code as well. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.87, 2005-01-08 14:00:31-08:00, nathanl@austin.ibm.com [PATCH] cpu_down() warning fix Fix (harmless?) smp_processor_id() usage in preemptible section of cpu_down. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.86, 2005-01-08 14:00:14-08:00, mingo@elte.hu [PATCH] oprofile preempt warning fixes From: Peter Zijlstra I have to use oprofile a lot but do want to enable preemption checks. This gives some noise; I think andrew allready mentioned fixin this. The following patch fixes about half of the warnings. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.85, 2005-01-08 13:59:57-08:00, mingo@elte.hu [PATCH] remove the BKL by turning it into a semaphore This is the current remove-BKL patch. I test-booted it on x86 and x64, trying every conceivable combination of SMP, PREEMPT and PREEMPT_BKL. All other architectures should compile as well. (most of the testing was done with the zaphod patch undone but it applies cleanly on vanilla -mm3 as well and should work fine.) this is the debugging-enabled variant of the patch which has two main debugging features: - debug potentially illegal smp_processor_id() use. Has caught a number of real bugs - e.g. look at the printk.c fix in the patch. - make it possible to enable/disable the BKL via a .config. If this goes upstream we dont want this of course, but for now it gives people a chance to find out whether any particular problem was caused by this patch. This patch has one important fix over the previous BKL patch: on PREEMPT kernels if we preempted BKL-using code then the code still auto-dropped the BKL by mistake. This caused a number of breakages for testers, which breakages went away once this bug was fixed. Also the debugging mechanism has been improved alot relative to the previous BKL patch. Would be nice to test-drive this in -mm. There will likely be some more smp_processor_id() false positives but they are 1) harmless 2) easy to fix up. We could as well find more real smp_processor_id() related breakages as well. The most noteworthy fact is that no BKL-using code was found yet that relied on smp_processor_id(), which is promising from a compatibility POV. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.84, 2005-01-08 13:59:38-08:00, hugh@veritas.com [PATCH] vmtrunc: restart_addr in truncate_count Despite its restart_pgoff pretentions, unmap_mapping_range_vma was fatally unable to distinguish a vma to be restarted from the case where that vma has been freed, and its vm_area_struct reused for the top part of a !new_below split of an isomorphic vma yet to be scanned. The obvious answer is to note restart_vma in the struct address_space, and cancel it when that vma is freed; but I'm reluctant to enlarge every struct inode just for this. Another answer is to flag valid restart in the vm_area_struct; but vm_flags is protected by down_write of mmap_sem, which we cannot take within down_write of i_sem. If we're going to need yet another field, better to record the restart_addr itself: restart_vma only recorded the last restart, but a busy tree could well use more. Actually, we don't need another field: we can neatly (though naughtily) keep restart_addr in vm_truncate_count, provided mapping->truncate_count leaps over those values which look like a page-aligned address. Zero remains good for forcing a scan (though now interpreted as restart_addr 0), and it turns out no change is needed to any of the vm_truncate_count settings in dup_mmap, vma_link, vma_adjust, move_one_page. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.83, 2005-01-08 13:59:23-08:00, hugh@veritas.com [PATCH] vmtrunc: bug if page_mapped If unmap_mapping_range (and mapping->truncate_count) are doing their jobs right, truncate_complete_page should never find the page mapped: add BUG_ON for our immediate testing, but this patch should probably not go to mainline - a mapped page here is not a catastrophe. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.82, 2005-01-08 13:59:06-08:00, hugh@veritas.com [PATCH] vmtrunc: vm_truncate_count race caution Fix some unlikely races in respect of vm_truncate_count. Firstly, it's supposed to be guarded by i_mmap_lock, but some places copy a vma structure by *new_vma = *old_vma: if the compiler implements that with a bytewise copy, new_vma->vm_truncate_count could be munged, and new_vma later appear up-to-date when it's not; so set it properly once under lock. vma_link set vm_truncate_count to mapping->truncate_count when adding an empty vma: if new vmas are being added profusely while vmtruncate is in progess, this lets them be skipped without scanning. vma_adjust has vm_truncate_count problem much like it had with anon_vma under mprotect merge: when merging be careful not to leave vma marked as up-to-date when it might not be, lest unmap_mapping_range in progress - set vm_truncate_count 0 when in doubt. Similarly when mremap moving ptes from one vma to another. Cut a little code from __anon_vma_merge: now vma_adjust sets "importer" in the remove_next case (to get its vm_truncate_count right), its anon_vma is already linked by the time __anon_vma_merge is called. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.81, 2005-01-08 13:58:53-08:00, hugh@veritas.com [PATCH] vmtrunc: unmap_mapping dropping i_mmap_lock vmtruncate (or more generally, unmap_mapping_range) has been observed responsible for very high latencies: the lockbreak work in unmap_vmas is good for munmap or exit_mmap, but no use while mapping->i_mmap_lock is held, to keep our place in the prio_tree (or list) of a file's vmas. Extend the zap_details block with i_mmap_lock pointer, so unmap_vmas can detect if that needs lockbreak, and break_addr so it can notify where it left off. Add unmap_mapping_range_vma, used from both prio_tree and nonlinear list handlers. This is what now calls zap_page_range (above unmap_vmas), but handles the lockbreak and restart issues: letting unmap_mapping_range_ tree or list know when they need to start over because lock was dropped. When restarting, of course there's a danger of never making progress. Add vm_truncate_count field to vm_area_struct, update that to mapping-> truncate_count once fully scanned, skip up-to-date vmas without a scan (and without dropping i_mmap_lock). Further danger of never making progress if a vma is very large: when breaking out, save restart_vma and restart_addr (and restart_pgoff to confirm, in case vma gets reused), to help continue where we left off. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.80, 2005-01-08 13:58:36-08:00, hugh@veritas.com [PATCH] vmtrunc: unmap_mapping_range_tree Move unmap_mapping_range's nonlinear vma handling out to its own inline, parallel to the prio_tree handling; unmap_mapping_range_list is a better name for the nonlinear list, rename the other unmap_mapping_range_tree. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.79, 2005-01-08 13:58:19-08:00, hugh@veritas.com [PATCH] vmtrunc: restore unmap_vmas zap_bytes The low-latency unmap_vmas patch silently moved the zap_bytes test after the TLB finish and lockbreak and regather: why? That not only makes zap_bytes redundant (might as well use ZAP_BLOCK_SIZE), it makes the unmap_vmas level redundant too - it's all about saving TLB flushes when unmapping a series of small vmas. Move zap_bytes test back before the lockbreak, and delete the curious comment that a small zap block size doesn't matter: it's true need_flush prevents TLB flush when no page has been unmapped, but unmapping pages in small blocks involves many more TLB flushes than in large blocks. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.78, 2005-01-08 13:58:02-08:00, hugh@veritas.com [PATCH] vmtrunc: truncate_count not atomic Why is mapping->truncate_count atomic? It's incremented inside i_mmap_lock (and i_sem), and the reads don't need it to be atomic. And why smp_rmb() before call to ->nopage? The compiler cannot reorder the initial assignment of sequence after the call to ->nopage, and no cpu (yet!) can read from the future, which is all that matters there. And delete totally bogus reset of truncate_count from blkmtd add_device. truncate_count is all about detecting i_size changes: i_size does not change there; and if it did, the count should be incremented not reset. Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.77, 2005-01-08 13:57:45-08:00, akpm@osdl.org [PATCH] block2mtd: avoid touching truncate_count blockmtd doesn't need to initialise address_space.truncate_count: open_bdev_excl did that. Plus I have a patch queued up which removes ->truncate_count. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.76, 2005-01-08 13:57:28-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - arch-independent From: William Lee Irwin III Without passing this parameter by reference, the changes to used_node_mask are meaningless and do not affect the caller's copy. This leads to boot-time failure. This proposed fix passes it by reference. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.75, 2005-01-08 13:57:12-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - x86_64 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.74, 2005-01-08 13:56:50-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - ppc64 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.73, 2005-01-08 13:56:34-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - parisc Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.72, 2005-01-08 13:56:15-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - mips Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.71, 2005-01-08 13:55:59-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - m32r Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.70, 2005-01-08 13:55:38-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - ia64 From: Jesse Barnes Here are some compile fixes for this patch. Looks like simple typos. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.69, 2005-01-08 13:55:22-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - i386 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.68, 2005-01-08 13:55:05-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - arm Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.67, 2005-01-08 13:54:48-08:00, colpatch@us.ibm.com [PATCH] Replace 'numnodes' with 'node_online_map' - alpha Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.66, 2005-01-08 13:54:31-08:00, nickpiggin@yahoo.com.au [PATCH] debug sched domains before attach Change the sched-domain debug routine to be called on a per-CPU basis, and executed before the domain is actually attached to the CPU. Previously, all CPUs would have their new domains attached, and then the debug routine would loop over all of them. This has two advantages: First, there is no longer any theoretical races: we are running the debug routine on a domain that isn't yet active, and should have no racing access from another CPU. Second, if there is a problem with a domain, the validator will have a better chance to catch the error and print a diagnostic _before_ the domain is attached, which may take down the system. Also, change reporting of detected error conditions to KERN_ERR instead of KERN_DEBUG, so they have a better chance of being seen in a hang on boot situation. The patch also does an unrelated (and harmless) cleanup in migration_thread(). Signed-off-by: Nick Piggin Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.65, 2005-01-08 13:54:15-08:00, mingo@elte.hu [PATCH] Fix smp_processor_id() warning in numa_node_id() The patch below fixes smp_processor_id() warnings that are triggered by numa_node_id(). All uses of numa_node_id() in mm/mempolicy.c seem to use it as a 'hint' only, not as a correctness number. Once a node is established, it's used in a preemption-safe way. So the simple fix is to disable the checking for numa_node_id(). But additional review would be more than welcome, because this patch turns off the preemption-checking of numa_node_id() permanently. Tested on amd64. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.64, 2005-01-08 13:53:57-08:00, mingo@elte.hu [PATCH] oprofile smp_processor_id() fixes Clean up a few suspicious-looking uses of smp_processor_id() in preemptible code. The current_cpu_data use is unclean but most likely safe. I haven't seen any outright bugs. Since oprofile does not seem to be ready for different-type CPUs (do we even care?), the patch below documents this property by using boot_cpu_data. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.63, 2005-01-08 13:53:41-08:00, mingo@elte.hu [PATCH] idle thread preemption fix The early bootup stage is pretty fragile because the idle thread is not yet functioning as such and so we need preemption disabled. Whether the bootup fails or not seems to depend on timing details so e.g. the presence of SCHED_SMT makes it go away. Disabling preemption explicitly has another advantage: the atomicity check in schedule() will catch early-bootup schedule() calls from now on. The patch also fixes another preempt-bkl buglet: interrupt-driven forced-preemption didnt go through preempt_schedule() so it resulted in auto-dropping of the BKL. Now we go through preempt_schedule() which properly deals with the BKL. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.62, 2005-01-08 13:53:24-08:00, mingo@elte.hu [PATCH] sched: fix scheduling latencies for !PREEMPT kernels This patch adds a handful of cond_resched() points to a number of key, scheduling-latency related non-inlined functions. This reduces preemption latency for !PREEMPT kernels. These are scheduling points complementary to PREEMPT_VOLUNTARY scheduling points (might_sleep() places) - i.e. these are all points where an explicit cond_resched() had to be added. Has been tested as part of the -VP patchset. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.61, 2005-01-08 13:53:06-08:00, mingo@elte.hu [PATCH] sched: fix scheduling latencies in vgacon.c This patch fixes scheduling latencies in vgacon_do_font_op(). The code is protected by vga_lock already so it's safe to drop (and re-acquire) the BKL. Has been tested in the -VP patchset. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.60, 2005-01-08 13:52:50-08:00, mingo@elte.hu [PATCH] sched: fix scheduling latencies in mttr.c Fix scheduling latencies in the MTRR-setting codepath. Also, fix bad bug: MTRR's _must_ be set with interrupts disabled! From: Bernard Blackham The patch sched-fix-scheduling-latencies-in-mttr in recent -mm kernels has the bad side-effect of re-enabling interrupts even if they were disabled. This caused bugs in Software Suspend 2 which reenabled MTRRs whilst interrupts were already disabled. Attached is a replacement patch which uses spin_lock_irqsave instead of spin_lock_irq. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.59, 2005-01-08 13:52:32-08:00, mingo@elte.hu [PATCH] fix keventd execution dependency We dont want to execute off keventd since it might hold a semaphore our callers hold too. This can happen when kthread_create() is called from within keventd. This happened due to the IRQ threading patches but it could happen with other code too. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.58, 2005-01-08 13:52:14-08:00, mingo@elte.hu [PATCH] sched: mm: fix scheduling latencies in filemap_sync() The attached patch, written by Andrew Morton, fixes long scheduling latencies in filemap_sync(). Has been tested as part of the -VP patchset. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.57, 2005-01-08 13:51:58-08:00, mingo@elte.hu [PATCH] sched: mm: fix scheduling latencies in get_user_pages() The attached patch fixes long scheduling latencies in get_user_pages(). Has been tested as part of the -VP patchset. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.56, 2005-01-08 13:51:41-08:00, mingo@elte.hu [PATCH] sched: mm: fix scheduling latencies in unmap_vmas() The attached patch fixes long latencies in unmap_vmas(). We had lockbreak code in that function already but it did not take delayed effects of TLB-gather into account. Has been tested as part of the -VP patchset. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.55, 2005-01-08 13:51:22-08:00, mingo@elte.hu [PATCH] sched: net: fix scheduling latencies in __release_sock The attached patch fixes long scheduling latencies caused by backlog triggered by __release_sock(). That code only executes in process context, and we've made the backlog queue private already at this point so it is safe to do a cond_resched_softirq(). Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.54, 2005-01-08 13:51:03-08:00, mingo@elte.hu [PATCH] sched: net: fix scheduling latencies in netstat The attached patch fixes long scheduling latencies caused by access to the /proc/net/tcp file. The seqfile functions keep softirqs disabled for a very long time (i've seen reports of 20+ msecs, if there are enough sockets in the system). With the attached patch it's below 100 usecs. The cond_resched_softirq() relies on the implicit knowledge that this code executes in process context and runs with softirqs disabled. Potentially enabling softirqs means that the socket list might change between buckets - but this is not an issue since seqfiles have a 4K iteration granularity anyway and /proc/net/tcp is often (much) larger than that. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.53, 2005-01-08 13:50:46-08:00, mingo@elte.hu [PATCH] sched: vfs: fix scheduling latencies in prune_dcache() and select_parent() The attached patch fixes long scheduling latencies in select_parent() and prune_dcache(). The prune_dcache() lock-break is easy, but for select_parent() the only viable solution i found was to break out if there's a resched necessary - the reordering is not necessary and the dcache scanning/shrinking will later on do it anyway. Signed-off-by: Ingo Molnar Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.52, 2005-01-08 13:50:26-08:00, mingo@elte.hu [PATCH] break latency in invalidate_list() break latency in invalidate_list(). Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.51, 2005-01-08 13:50:09-08:00, mingo@elte.hu [PATCH] sched: ext3: fix scheduling latencies in ext3 The attached patch fixes long scheduling latencies in the ext3 code, and it also cleans up the existing lock-break functionality to use the new primitives. This patch has been in the -VP patchset for quite some time. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.50, 2005-01-08 13:49:52-08:00, mingo@elte.hu [PATCH] sched: add cond_resched_softirq() It adds cond_resched_softirq() which can be used by _process context_ softirqs-disabled codepaths to preempt if necessary. The function will enable softirqs before scheduling. (Later patches will use this primitive.) Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.49, 2005-01-08 13:49:36-08:00, mingo@elte.hu [PATCH] add lock_need_resched() Add lock_need_resched() which is to check for the necessity of lock-break in a critical section. Used by later latency-break patches. tested on x86, should work on all architectures. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.48, 2005-01-08 13:49:19-08:00, mingo@elte.hu [PATCH] preempt cleanup This is another generic fallout from the voluntary-preempt patchset: a cleanup of the cond_resched() infrastructure, in preparation of the latency reduction patches. The changes: - uninline cond_resched() - this makes the footprint smaller, especially once the number of cond_resched() points increase. - add a 'was rescheduled' return value to cond_resched. This makes it symmetric to cond_resched_lock() and later latency reduction patches rely on the ability to tell whether there was any preemption. - make cond_resched() more robust by using the same mechanism as preempt_kernel(): by using PREEMPT_ACTIVE. This preserves the task's state - e.g. if the task is in TASK_ZOMBIE but gets preempted via cond_resched() just prior scheduling off then this approach preserves TASK_ZOMBIE. - the patch also adds need_lockbreak() which critical sections can use to detect lock-break requests. Signed-off-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.47, 2005-01-08 13:49:02-08:00, mingo@elte.hu [PATCH] improve preemption on SMP SMP locking latencies are one of the last architectural problems that cause millisec-category scheduling delays. CONFIG_PREEMPT tries to solve some of the SMP issues but there are still lots of problems remaining: spinlocks nested at multiple levels, spinning with irqs turned off, and non-nested spinning with preemption turned off permanently. The nesting problem goes like this: if a piece of kernel code (e.g. the MM or ext3's journalling code) does the following: spin_lock(&spinlock_1); ... spin_lock(&spinlock_2); ... then even with CONFIG_PREEMPT enabled, current kernels may spin on spinlock_2 indefinitely. A number of critical sections break their long paths by using cond_resched_lock(), but this does not break the path on SMP, because need_resched() *of the other CPU* is not set so cond_resched_lock() doesnt notice that a reschedule is due. to solve this problem i've introduced a new spinlock field, lock->break_lock, which signals towards the holding CPU that a spinlock-break is requested by another CPU. This field is only set if a CPU is spinning in a spinlock function [at any locking depth], so the default overhead is zero. I've extended cond_resched_lock() to check for this flag - in this case we can also save a reschedule. I've added the lock_need_resched(lock) and need_lockbreak(lock) methods to check for the need to break out of a critical section. Another latency problem was that the stock kernel, even with CONFIG_PREEMPT enabled, didnt have any spin-nicely preemption logic for the following, commonly used SMP locking primitives: read_lock(), spin_lock_irqsave(), spin_lock_irq(), spin_lock_bh(), read_lock_irqsave(), read_lock_irq(), read_lock_bh(), write_lock_irqsave(), write_lock_irq(), write_lock_bh(). Only spin_lock() and write_lock() [the two simplest cases] where covered. In addition to the preemption latency problems, the _irq() variants in the above list didnt do any IRQ-enabling while spinning - possibly resulting in excessive irqs-off sections of code! preempt-smp.patch fixes all these latency problems by spinning irq-nicely (if possible) and by requesting lock-breaks if needed. Two architecture-level changes were necessary for this: the addition of the break_lock field to spinlock_t and rwlock_t, and the addition of the _raw_read_trylock() function. Testing done by Mark H Johnson and myself indicate SMP latencies comparable to the UP kernel - while they were basically indefinitely high without this patch. i successfully test-compiled and test-booted this patch ontop of BK-curr using the following .config combinations: SMP && PREEMPT, !SMP && PREEMPT, SMP && !PREEMPT and !SMP && !PREEMPT on x86, !SMP && !PREEMPT and SMP && PREEMPT on x64. I also test-booted x86 with the generic_read_trylock function to check that it works fine. Essentially the same patch has been in testing as part of the voluntary-preempt patches for some time already. NOTE to architecture maintainers: generic_raw_read_trylock() is a crude version that should be replaced with the proper arch-optimized version ASAP. From: Hugh Dickins The i386 and x86_64 _raw_read_trylocks in preempt-smp.patch are too successful: atomic_read() returns a signed integer. Signed-off-by: Ingo Molnar Signed-off-by: Hugh Dickins Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.46, 2005-01-08 13:48:44-08:00, nathanl@austin.ibm.com [PATCH] ppc64: call idle_task_exit from cpu_die Call idle_task_exit from cpu_die to avoid mm_struct leak. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.45, 2005-01-08 13:48:27-08:00, nathanl@austin.ibm.com [PATCH] introduce idle_task_exit Heiko Carstens figured out that offlining a cpu can leak mm_structs because the dying cpu's idle task fails to switch to init_mm and mmdrop its active_mm before the cpu is down. This patch introduces idle_task_exit, which allows the idle task to do this as Ingo suggested. I will follow this up with a patch for ppc64 which calls idle_task_exit from cpu_die. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.44, 2005-01-08 13:48:10-08:00, josha@sgi.com [PATCH] sched: remove outdated/misleading comments This patch removes two outdated/misleading comments from the CPU scheduler. 1) The first comment removed is simply incorrect. The function it comments on is not used for what the comments says it is anymore. 2) The second comment is a leftover from when the "if" block it comments on contained a goto. It does not any more, and the comment doesn't make sense. There isn't really a reason to add different comments, though someone might feel differently in the case of the second one. I'll leave adding a comment to anybody who wants to - more important to just get rid of them now. Signed-off-by: Josh Aas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.43, 2005-01-08 13:47:53-08:00, dcn@sgi.com [PATCH] export sched_setscheduler() for kernel module use This patch exports sched_setscheduler() so that it can be used by a kernel module to set a kthread's scheduling policy and associated parameters. Signed-off-by: Dean Nelson Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.42, 2005-01-08 13:47:36-08:00, rml@novell.com [PATCH] sched: no need to recalculate rq no need to call task_rq in setscheduler; just use rq Signed-Off-By: Robert Love Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.41, 2005-01-08 13:47:19-08:00, oleg@tv-sign.ru [PATCH] don't hide thread_group_leader() from grep Replace open-coded thread_group_leader() calls. Signed-off-by: Oleg Nesterov Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.40, 2005-01-08 13:47:03-08:00, oleg@tv-sign.ru [PATCH] sched: use cached current value schedule() can use prev instead of get_current(). Signed-off-by: Oleg Nesterov Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.39, 2005-01-08 13:46:46-08:00, kernel@kolivas.org [PATCH] sched: remove_interactive_credit Special casing tasks by interactive credit was helpful for preventing fully cpu bound tasks from easily rising to interactive status. However it did not select out tasks that had periods of being fully cpu bound and then sleeping while waiting on pipes, signals etc. This led to a more disproportionate share of cpu time. Backing this out will no longer special case only fully cpu bound tasks, and prevents the variable behaviour that occurs at startup before tasks declare themseleves interactive or not, and speeds up application startup slightly under certain circumstances. It does cost in interactivity slightly as load rises but it is worth it for the fairness gains. Signed-off-by: Con Kolivas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.38, 2005-01-08 13:46:30-08:00, kernel@kolivas.org [PATCH] sched: requeue_granularity Change the granularity code to requeue tasks at their best priority instead of changing priority while they're running. This keeps tasks at their top interactive level during their whole timeslice. Signed-off-by: Con Kolivas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.37, 2005-01-08 13:46:13-08:00, kernel@kolivas.org [PATCH] sched: add_requeue_task We can requeue tasks for cheaper then doing a complete dequeue followed by an enqueue. Add the requeue_task function and perform it where possible. This will be hit frequently by upcoming changes to the requeueing in timeslice granularity. Signed-off-by: Con Kolivas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.36, 2005-01-08 13:45:57-08:00, kernel@kolivas.org [PATCH] sched: adjust_timeslice_granularity The minimum timeslice was decreased from 10ms to 5ms. In the process, the timeslice granularity was leading to much more rapid round robinning of interactive tasks at cache trashing levels. Restore minimum granularity to 10ms. Signed-off-by: Con Kolivas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.35, 2005-01-08 13:45:40-08:00, kernel@kolivas.org [PATCH] sched: alter_kthread_prio Timeslice proportion has been increased substantially for -niced tasks. As a result of this kernel threads have much larger timeslices than they previously had. Change kernel threads' nice value to -5 to bring their timeslice back in line with previous behaviour. This means kernel threads will be less likely to cause large latencies under periods of system stress for normal nice 0 tasks. Signed-off-by: Con Kolivas Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.34, 2005-01-08 13:45:24-08:00, kernel@kolivas.org [PATCH] sched.c whitespace mangler Convert whitespace in sched.c to tabs Signed-off-by: Con Kolivas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.33, 2005-01-08 13:45:08-08:00, anton@samba.org [PATCH] sched: reset cache_hot_time Reset cache_hot_time to sane values (in the ms range). Some recent changes resulted in values in the us range. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.32, 2005-01-08 13:44:51-08:00, colpatch@us.ibm.com [PATCH] sched: active_load_balance() fixlet There is a small problem with the active_load_balance() patch that Darren sent out last week. As soon as we discover a potential 'target_cpu' from 'cpu_group' to try to push tasks to, we cease considering other CPUs in that group as potential 'target_cpu's. We break out of the for_each_cpu_mask() loop and try to push tasks to that CPU. The problem is that there may well be other idle cpus in that group that we should also try to push tasks to. Here is a patch to fix that small problem. The solution is to simply move the code that tries to push the tasks into the for_each_cpu_mask() loop and do away with the whole 'target_cpu' thing entirely. Compiled & booted on a 16-way x440. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.31, 2005-01-08 13:44:34-08:00, habanero@us.ibm.com [PATCH] sched: newidle fix Allow idle_balance to search an incresingly larger span of cpus to find a cpu. Minor change, NODE_SD_INIT gets SD_BALANCE_NEWIDLE flag. This is critical for x86_64, where there is only one cpu oer node. In the current code, idle_balance for Opteron -never- works. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.30, 2005-01-08 13:44:22-08:00, habanero@us.ibm.com [PATCH] sched: can_migrate exception for idle cpus Fix can_migrate to allow aggressive steal for idle cpus. This -was- in mainline, but I believe sched_domains kind of blasted it outta there. IMO, it's a no brainer for an idle cpu (with all that cache going to waste) to be granted to steal a task. The one enhancement I have made was to make sure the whole cpu was idle. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.29, 2005-01-08 13:44:05-08:00, habanero@us.ibm.com [PATCH] sched: more agressive wake_idle() This patch addresses some problems with wake_idle(). Currently wake_idle() will wake a task on an alternate cpu if: 1) task->cpu is not idle 2) an idle cpu can be found However the span of cpus to look for is very limited (only the task->cpu's sibling). The scheduler should find the closest idle cpu, starting with the lowest level domain, then going to higher level domains if allowed (doamin has flag SD_WAKE_IDLE). This patch does this. This and the other two patches (also to be submitted) combined have provided as much at 5% improvement on that "online transaction DB workload" and 2% on the industry standard J@EE workload. I asked Martin Bligh to test these for regression, and he did not find any. I would like to submit for inclusion to -mm and barring any problems eventually to mainline. Signed-off-by: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.28, 2005-01-08 13:43:47-08:00, neilb@cse.unsw.edu.au [PATCH] nfsd4_setclientid_confirm locking fix Avoid unlock-without-lock problem on error path in nfsd4_setclientid_confirm Signed-off-by: Neil Brown Signed-off-by: J. Bruce Fields Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.27, 2005-01-08 13:43:31-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: fix ia64 callgraph bug with old gcc With Keith Owens This patch from Keith Owens fixes a bug in the ia64 port of oprofile when built without the kdb patch and with a pre-3.4 gcc. If you build a standard kernel with gcc < 3.4 then ia64_spinlock_contention_pre3_4 is defined. But a standard kernel does not have ia64_spinlock_contention_pre3_4_end, that label is only added by the kdb patch. To get the backtrace profiling with gcc < 3.4, the _end label needs to be added as part of the kernprof patch, then I will remove it from kdb. Signed-off-by: Keith Owens Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.26, 2005-01-08 13:43:14-08:00, tharbaugh@lnxi.com [PATCH] initramfs: unprivileged image creation This patch makes several tweaks so that an initramfs image can be completely created by an unprivileged user. It should maintain compatibility with previous initramfs early userspace cpio/image creation and it updates documentation. There are a few very important tweaks: CONFIG_INITRAMFS_SOURCE is now either a single cpio archive that is directly used or a list of directories and files for building a cpio archive for the initramfs image. Making the cpio archive listable in CONFIG_INITRAMFS_SOURCE makes the cpio step more official and automated so that it doesn't have to be copied by hand to usr/initramfs_data.cpio (I think this was broken anyway and would be overwritten). The alternative list of directories *and* files means that files can be install in a "root" directory and device-special files can be listed in a file list. CONFIG_ROOT_UID and CONFIG_ROOT_GID are now available for doing simple user/group ID translation. That means that user ID 500, group ID 500 can create all the files in the "root" directory, but that they can all be owned by user ID 0, group ID 0 in the cpio image. Various documentation updates to pull it all together. Removal of old cruft that was unused/misleading. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.25, 2005-01-08 13:42:57-08:00, tytso@mit.edu [PATCH] ext3 htree telldir() fix telldir() is broken on large ext3 dir_index'd directories because getdents() gives d_off==0 for the first entry Here's a patch which fixes the problem, but note the following warning from the readdir man page: According to POSIX, the dirent structure contains a field char d_name[] of unspecified size, with at most NAME_MAX characters preceding the terminating null character. Use of other fields will harm the porta- bility of your programs. Also, as always, telldir() and seekdir() are truly awful interfaces because they implicitly assume that (a) a directory is a linear data structure, and (b) that the position in a directory can be expressed in a cookie which hsa only 31 bits on 32-bit systems. So there will be hash colliions that will cause programs that assume that seekdir(dirent->d_off) will always return the next directory entry to sometimes lose directory entries in the not-as-unlikely-as-we-would wish case of a 31-bit hash collision. Really, any program which is using telldir/seekdir really should be rewritten to not use these interfaces if at all possible. So with these caveats.... What we need to do is wire '.' and '..' to have hash values of (0,0) and (2,0), respectively, without ignoring other existing dirents with colliding hashes. (In those cases the programs will break, but they are statistically rare, and there's not much we can do in those cases anyway.) Signed-off-by: "Theodore Ts'o" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.24, 2005-01-08 13:42:41-08:00, miltonm@bga.com [PATCH] INITRAMFS: allow no trailer According to "initramfs buffer format -- third draft" http://lwn.net/2002/0117/a/initramfs-buffer-format.php3 "the cpio "TRAILER!!!" entry (cpio end-of-archive) is optional, but is not ignored" The kernel handling does not follow this spec. If you add null padding after an uncompressed cpio without TRAILER!!! the kernel complains "no cpio magic". In a gzipped archive one gets "junk in gzipped archive" without the TRAILER!!! This patch changes the state transitions so the kernel will follow the spec. Tested: padded uncompressed, padded compressed, unpadded compressed (error) and trailing junk in compressed (error) === I have a boot loader that knows how to load files, determine their size, and advance to the next 4-byte boundary and reports the total size of the files loaded. It doesn't understand about converting this number to some ASCII representation. With this patch I can embed the contents of a file padded with NULs with out knowing the exact size of the file with the following files: 1) file containing cpio header & file name, padded to 4 bytes 2) contents of file 3) pad file of zeros, the size at least as large as the that specified for the file. hpa points out that you should be careful with the headers, use unique inode numbers and/or add a cpio header with just TRAILER!!! to reset the inode hash table to avoid unwanted hard links. I just put this sequence as the last files loaded. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.23, 2005-01-08 13:42:25-08:00, tharbaugh@lnxi.com [PATCH] gen_init_cpio symlink, pipe and socket support This patch makes gen_init_cpio more complete by adding symlink, pipe and socket support. It updates scripts/gen_initramfs_list.sh to support the new types. The patch applies to the recent mm series that already have the updated gen_init_cpio and gen_initramfs_list.sh. From: William Lee Irwin III The rest of gen_init_cpio.c seems to cast the result of strlen() to handle this situation, so this patch follows suit while killing off size_t -related printk() warnings. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.22, 2005-01-08 13:42:10-08:00, rddunlap@osdl.org [PATCH] ibmasm: fix init/exit sections Fix init & exit section usage, started with this diagnostic from reference_discarded.pl (make buildcheck): Error: ./drivers/misc/ibmasm/module.o .data refers to 00000058 R_386_32 .exit.text Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.21, 2005-01-08 13:41:53-08:00, jgarzik@pobox.com [PATCH] fix sx8 blk driver device naming Attached fixes sysfs naming of sx8 block devs to follow LANANA naming. You then get /sys/block/sx8!0, etc instead of /sys/block/sx80_0 (device names should be /dev/sx8/0 instead of /dev/sx80_0) Signed-off-by: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.20, 2005-01-08 13:41:36-08:00, pmeda@akamai.com [PATCH] readdir: return value missed in getdents64 Small issue: return value missed in getdents64, but handled in getdents. Signed-Off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.19, 2005-01-08 13:41:19-08:00, stsp@aknet.ru [PATCH] fix cdrom autoclose The attached patch fixes the CD-ROM autoclose. It is broken in recent kernels for CD-ROMs that do not properly report that the tray is opened. Now on such a drives the kernel will do one close attempt and check for the disc again. This is how it used to work in the past. Signed-off-by: Stas Sergeev Acked-by: Alexander Kern Acked-by: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.18, 2005-01-08 13:41:01-08:00, nathanl@austin.ibm.com [PATCH] prohibit slash in proc directory entry names proc_create() needs to check that the name of an entry to be created does not contain a '/' character. To test, I hacked the ibmveth driver to try to call request_irq with a bogus "foo/bar" devname. The creation of the /proc/irq/1234/xxx entry silently fails, as intended. Perhaps the irq code should be made to check for the failure. Signed-off-by: Nathan Lynch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.17, 2005-01-08 13:40:44-08:00, olh@suse.de [PATCH] request_irq: avoid slash in proc directory entries A few users of request_irq pass a string with '/'. As a result, ls -l /proc/irq/*/* will fail to list these entries. Signed-off-by: Olaf Hering Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.16, 2005-01-08 13:40:27-08:00, olof@austin.ibm.com [PATCH] ppc64: IOMMU cleanups: Main cleanup patch Earlier cleanup efforts of the ppc64 IOMMU code have mostly been targeted at simplifying the allocation schemes and modularising things for the various platforms. The IOMMU init functions are still a mess. This is an attempt to clean them up and make them somewhat easier to follow. The new rules are: 1. iommu_init_early_ is called before any PCI/VIO init is done 2. The pcibios fixup routines will call the iommu_{bus,dev}_setup functions appropriately as devices are added. TCE space allocation has changed somewhat: * On LPARs, nothing is really different. ibm,dma-window properties are still used to determine table sizes. * On pSeries SMP-mode (non-LPAR), the full TCE space per PHB is split up in 256MB chunks, each handed out to one child bus/slot as needed. This makes current max 7 child buses per PHB, something we're currently below on all machine models I'm aware of. * Exception to the above: Pre-POWER4 machines with Python PHBs have a full GB of DMA space allocated at the PHB level, since there are no EADS-level tables on such systems. * PowerMac and Maple still work like before: all buses/slots share one table. * VIO works like before, ibm,my-dma-window is used like before. * iSeries has not been touched much at all, besides the changed unit of the it_size variable in struct iommu_table. Other things changed: * Powermac and maple PCI/IOMMU inits have been changed a bit to conform to the new init structure * pci_dma_direct.c has been renamed pci_direct_iommu.c to match pci_iommu.c (see separate patch) * Likewise, a couple of the pci direct init functions have been renamed. Signed-off-by: Olof Johansson Acked-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.15, 2005-01-08 13:40:11-08:00, olof@austin.ibm.com [PATCH] ppc64: IOMMU cleanups: rename pci_dma_direct.c This patch renames pci_dma_direct.c to pci_direct_iommu.c to comply to the naming convention of the other iommu files. This is part of the iommu cleanup, but broken out as a separate patch since for mainline, a BK rename is more appropriate. Still, we need a patch to apply for non-BK-based trees (-mm) Signed-off-by: Olof Johansson Acked-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.14, 2005-01-08 13:39:35-08:00, paulus@samba.org [PATCH] ppc64: Log machine check errors to error log and NVRAM This patch is from Jake Moilanen . Log machine check errors to error log and NVRAM. Signed-off-by: Dave Altobelli Signed-off-by: Jake Moilanen Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.13, 2005-01-08 13:39:22-08:00, paulus@samba.org [PATCH] ppc64: clean up trap handling in head.S This patch is from Jake Moilanen . Changed the naming conventions for head.S to more closely follow the Linux naming conventions. Signed-off-by: Jake Moilanen Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.12, 2005-01-08 13:39:05-08:00, paulus@samba.org [PATCH] ppc64: clean up trap handling This patch is from Jake Moilanen . Clean-up of traps.c. Moved the machine dependent calls to a ppc_md call, and moved the pSeries specific code to ras.c. I also changed the naming convention to more closely follow the Linux standards. Signed-off-by: Jake Moilanen Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.11, 2005-01-08 13:38:49-08:00, paulus@samba.org [PATCH] ppc64: use newer RTAS call when available This patch is from Nathan Fontenot originally. The PPC64 EEH code needs a small update to start using the ibm,read-slot-reset-state2 rtas call if available. The currently used ibm,read-slot-reset-state call will be going away on future machines. This patch attempts to use the newer rtas call if available and falls back the older version otherwise. This will maintain EEH slot checking capabilities on all future and current firmware levels. Signed-off-by: Nathan Fontenot Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.10, 2005-01-08 13:38:32-08:00, david@gibson.dropbear.id.au [PATCH] ppc64: add performance monitor register information to processor.h Most special purpose registers on the ppc64 have both the SPR number, and the various fields within the register defined in asm-ppc64/processor.h. So far that's not true for the performance counter control registers, MMCR0 and MMCRA. They have the SPR numbers defined, but the internal fields are defined in the oprofile code and (just a few) in traps.c where they're actually used. This patch moves all the MMCR0 and MMCRA definitions, plus the MSR performance monitor bit, MSR_PMM, into processor.h. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.9, 2005-01-08 13:38:16-08:00, nickpiggin@yahoo.com.au [PATCH] compound pages optimisation Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.8, 2005-01-08 13:37:59-08:00, riel@redhat.com [PATCH] vmscan: count writeback pages in nr_scanned OOM kills have been observed with 70% of the pages in lowmem being in the writeback state. If we count those pages in sc->nr_scanned, the VM should throttle and wait for IO completion, instead of OOM killing. (akpm: this is how the code was designed to work - we broke it six months ago). Signed-off-by: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.7, 2005-01-08 13:37:43-08:00, takata@linux-m32r.org [PATCH] m32r: build fix This patch is required to fix compile errors for m32r. This was originally given by the following patch: [PATCH] move irq_enter and irq_exit to common code http://www.ussg.iu.edu/hypermail/linux/kernel/0411.1/1738.html I think it was maybe accidentally dropped only for the m32r arch due to a patching conflict with the other patches or something like that. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.6, 2005-01-08 13:37:26-08:00, wli@holomorphy.com [PATCH] hugetlbfs MAINTAINERS update I'm being at least sometimes deferred to for hugetlb maintenance. I also originally wrote the fs methods, and generally get stuck working on it on a regular basis. So here is a MAINTAINERS entry reflecting that. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.5, 2005-01-08 13:37:05-08:00, takata@linux-m32r.org [PATCH] oprofile: update m32r for api changes oprofile m32r arch updates, including some API changes. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.4, 2005-01-08 13:36:49-08:00, akpm@osdl.org [PATCH] cs416x: use upcase in config Kconfig symbols are always uppercase. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.3, 2005-01-08 13:04:22-08:00, torvalds@evo.osdl.org Merge small pipe writes into the write buffers ChangeSet@1.2247.5.2, 2005-01-08 12:33:15-08:00, hch@lst.de [PATCH] fix double iget in romfs_fill_super Acked-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.2247.5.1, 2005-01-08 12:07:50-08:00, torvalds@evo.osdl.org Fix TASK_SIZE range check that got lost in recent clear_page_range()/4-level page table updates. ChangeSet@1.2247.1.3, 2005-01-08 00:43:14-05:00, jgarzik@pobox.com [netdrvr s2io] make debug_level variable static Fixes 'make allyesconfig' build conflict with infiniband, which also has a global variable named 'debug_level'. ChangeSet@1.2247.4.4, 2005-01-08 00:04:18+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2363/1: IQ80332 platform port Patch from Dave Jiang Signed-off-by: Dave Jiang This is the IQ80332 platform port that's based off the IOP33x CPU. The IQ80332 is an PCI-express CRB based off the IOP332 processor. Otherwise functionalites are fairly similar to IQ80331. Signed-off-by: Russell King ChangeSet@1.2247.2.4, 2005-01-07 15:58:52-08:00, torvalds@ppc970.osdl.org Fix do_brk() locking in library loader The regular executable loader path doesn't need the locking, because it's the only user of its VM. But the same is not true at library load time. So get the mmap semaphore. ChangeSet@1.2247.4.3, 2005-01-07 23:36:26+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2362/1: cleanup of PCI defines for IOP321 platforms Patch from Dave Jiang Signed-off-by: Dave Jiang Major cleanup of the 321 PCI defines to make them more coherent. Unified some groups that were per platform to common proc specific. Removed some magic numbers. Signed-off-by: Russell King ChangeSet@1.2247.4.2, 2005-01-07 23:30:11+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2361/1: clean up irq handling code for IOP33x platforms Patch from Dave Jiang Signed-off-by: Dave Jiang Substitute 2 asm instr w/ one recommend by RMK. Signed-off-by: Russell King ChangeSet@1.2247.4.1, 2005-01-07 22:07:15+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2358/1: Add IXP46x I2C platform device Patch from Deepak Saxena The IXP46x chips from Intel include the same I2C controller as found on the IOP3xx. This patch adds a hook to the platform-level init code to add that device to the device tree if running on a 46x CPU. A separate patch has been sent upstream via Greg KH for the changes to the I2C driver to support both IOP and IXP systems. While at it, we fix a minor issue with the code where we were sending the wrong ptr to platform_add_devices(). I am not sure how it ever worked... Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.2247.2.2, 2005-01-07 08:29:15-08:00, jgarzik@pobox.com [PATCH] x86-64: kernel/sys.c build fix On x86-64, the attached patch is required to fix > kernel/sys.c: In function `sys_setsid': > kernel/sys.c:1078: error: `tty_sem' undeclared (first use in this function) > kernel/sys.c:1078: error: (Each undeclared identifier is reported only once > kernel/sys.c:1078: error: for each function it appears in.) kernel/sys.c needs the tty_sem declaration from linux/tty.h. ChangeSet@1.2247.3.1, 2005-01-07 10:46:02+00:00, rmk@flint.arm.linux.org.uk [MMC] Remove linux/blkdev.h include. Since we no longer pass a struct request to the MMC host drivers, it seems pointless including linux/blkdev.h. Instead, include linux/highmem.h and asm/scatterlist.h as appropriate. Signed-off-by: Russell King ChangeSet@1.2229.4.9, 2005-01-06 23:12:02-05:00, ak@suse.de [PATCH] Fix ADMtek Comet on x86-64 This Tulip clone doesn't like an Cache Line setting over 8 words. This broke it on x86-64. Make it the same as on i386. Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.8, 2005-01-06 23:08:35-05:00, gortan@tttech.com 8139cp: support for TTTech MC322 ChangeSet@1.2249, 2005-01-06 22:59:40-05:00, bunk@stusta.de [PATCH] OSS via82cxxx_audio.c: remove unused CONFIG_SOUND_VIA82CXXX_PROCFS code > >How else is this information available? > > lspci. it's just a verbose dump of PCI config registers. Sounds reasonable. Below is a patch to remove the CONFIG_SOUND_VIA82CXXX_PROCFS code. diffstat output: sound/oss/via82cxxx_audio.c | 218 ------------------------------------ 1 files changed, 1 insertion(+), 217 deletions(-) Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik ChangeSet@1.2247.1.1, 2005-01-06 22:49:55-05:00, manfred@colorfullife.com [PATCH] forcedeth: add ethtool get/set_settings support The patch adds ethtool get_ and set_settings support to the forcedeth nic driver. This allows to force a certain link speed with ethtool -s. Supported link speeds: 10 HD&FD, 100 HD&FD, 1000 FD 1000 HD is not supported (probably a hardware restriction), 1000 FD is only supported with autonegotiation enabled. Changelog: - Code reorganization: move ethtool functions further down in forcedeth.c (no code changes within the existing ethtool functions) - add support for setting the link setting bits in the nic with autodetection in the PHY disabled (i.e. use a netdev_priv() variable instead of querying the PHY) - implement get_settings and set_settings ethtool functions. Signed-Off-By: Manfred Spraul Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.7, 2005-01-06 22:45:32-05:00, shemminger@osdl.org [PATCH] via-velocity: convert to module_param Convert via-velocity driver to module_param. Signed-off-by: Stephen Hemminger Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.12, 2005-01-07 04:11:38+01:00, bzolnier@trik.(none) [ide] kill current_capacity() Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.8.1, 2005-01-06 22:09:11-05:00, katzj@redhat.com [PATCH] Fix sx8 device naming in sysfs Attached fixes sysfs naming of sx8 block devs to follow LANANA naming. You then get /sys/block/sx8!0, etc instead of /sys/block/sx80_0 (device names should be /dev/sx8/0 instead of /dev/sx80_0) Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.11, 2005-01-07 04:06:22+01:00, bzolnier@trik.(none) [ide] ide_driver_t->abort() cleanup * add drive->media != ide_disk check to ide_abort() * kill ide_cdrom_abort() and idedisk_abort() * split __ide_abort() out of ide_abort() * call driver->abort() inside ide_abort() * convert the only user of driver->abort() * fix default_abort() and idescsi_atapi_abort() * make idescsi_atapi_abort() static Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.4.6, 2005-01-06 22:05:47-05:00, alex.kern@gmx.de [PATCH] new PCI_ID for tulip it exist a PCCARD from SIEMENS, its relabeled DLINK. Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.10, 2005-01-07 04:03:18+01:00, bzolnier@trik.(none) [ide] rework ide_driver_t->error * split __ide_error() out of ide_error() * call driver->error() inside ide_error() * convert all users of driver->error() * fix default_cleanup() and idescsi_atapi_error() * make idescsi_atapi_error() static Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.6.4, 2005-01-06 21:44:09-05:00, ganesh.venkatesan@intel.com [PATCH] e100: Documentation/networking/e100.txt update Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.15, 2005-01-06 21:43:32-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Documentation/networking/e1000.txt update Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.9, 2005-01-07 03:35:46+01:00, bzolnier@trik.(none) [ide] cleanup ide_error() * move idedisk_error() and ide_cdrom_error() to ide-io.c * rename idedisk_error() to ide_ata_error() * rename ide_cdrom_error() to ide_atapi_error() * use ide_{ata,atapi}_error() in ide_error() Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.3.8, 2005-01-07 03:31:43+01:00, bzolnier@trik.(none) [ide] cleanup ide_dump_status() * move idedisk_dump_status() and ide_dump_status() to ide-lib.c * rename idedisk_dump_status() to ide_dump_ata_status() * use ide_dump_{ata,atapi}_status() in ide_dump_status() * use ide_dump_status() in ide-cd.c, ide-disk.c and ide-scsi.c * make ide_dump_opcode() and ide_dump_atapi_status)() static Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.7.14, 2005-01-06 21:30:57-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Driver version number, white spaces, comments, device id & other changes Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.13, 2005-01-06 21:30:44-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Applied smart speed fix where the code was forcing smart speed on all the time. Now it will honor the setting defined in the eeprom. Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.12, 2005-01-06 21:30:30-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Applied eeprom fix where it was possible to read/write one more word than what should have been possible. Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.11, 2005-01-06 21:30:15-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Added workaround to prevent inadvertent gigabit waveform to be sent out on the wire due to init-time operations on the IGP phy. Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.10, 2005-01-06 21:30:00-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Kernel API change for Module_param_array_named Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.9, 2005-01-06 21:29:45-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: {set, get}_wol is now symmetric for 82545EM adapters Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.8, 2005-01-06 21:29:32-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Fix tx resource cleanup logic Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.7, 2005-01-06 21:29:19-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Replace schedule_timeout() with msleep()/msleep_interruptible() nacc@us.ibm.com Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.6, 2005-01-06 21:29:03-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: remove a redundant assignment to a local nr_frags in e1000_xmit_frame. Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.5, 2005-01-06 21:28:48-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Avoid filling tx_ring completely - shemminger@osdl.org Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.4, 2005-01-06 21:28:33-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Enabling NETIF_F_SG without checksum offload is illegal -- jdmason@us.ibm.com Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.3, 2005-01-06 21:28:20-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Fix ethtool diagnostics -- specifically for blade server implementations Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.2, 2005-01-06 21:28:05-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: Fix kernel panic when the interface is brought down while the NAPI enabled driver is under stress Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.7.1, 2005-01-06 21:27:50-05:00, ganesh.venkatesan@intel.com [PATCH] e1000: ITR does not default correctly on 2.6.x kernels Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.7, 2005-01-07 03:27:20+01:00, bzolnier@trik.(none) [ide] add ide_dump_opcode() * add it to ide-lib.c and cleanup ide{disk}_dump_status() * as a bonus it fixes unknown opcode reporting in ide_dump_status() * use ide_dump_opcode() in ide_dump_atapi_status() Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.6.3, 2005-01-06 21:23:45-05:00, ganesh.venkatesan@intel.com [PATCH] e100: Update driver version number Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.6.2, 2005-01-06 21:23:35-05:00, ganesh.venkatesan@intel.com [PATCH] e100: Sort Device IDs Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.6.1, 2005-01-06 21:23:23-05:00, ganesh.venkatesan@intel.com [PATCH] e100: Replace locally implemented delay routines Signed-off-by: Ganesh Venkatesan Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.6, 2005-01-07 03:19:40+01:00, bzolnier@trik.(none) [ide] kill write-only ide_driver_t->sense also kill default_sense() in ide.c Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.3.5, 2005-01-07 03:17:30+01:00, bzolnier@trik.(none) [ide] PCI quirk for ICH3-M IDE From: Jim Paris Bartlomiej: I have an ICH3-M controller on my laptop. The BIOS is leaving the prog-if as 0x8E (primary = legacy, secondary = native). When the PCI interrupt is routed (either in the IDE driver's pci_enable_device, or earlier if pci=routeirq is used), unhandled interrupts cause IRQ 9 to be disabled, breaking most of my other hardware. This seems to be caused by having the nonexistant secondary interface set to native mode. According to the datasheet I checked, having different modes for primary/secondary is not an allowed combination anyway, so the following PCI quirk checks for this case and forces both interfaces to legacy if true. It may make sense to make this more generic (this problem may affect other PCI IDs as well), or it may be better solved in the IDE driver, at least when pci=routeirq is not used. But the following patch does work well for me. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.5.1, 2005-01-06 21:10:14-05:00, jason.d.gaston@intel.com [PATCH] SATA support for Intel ICH7 Reposting patch with word wrap turned off. Please let me know if this is still not formated correctly. This patch adds the Intel ICH7 DID's to the ata_piix.c SATA driver, ahci.c SATA AHCI driver and quirks.c for ICH7 SATA support. Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.5, 2005-01-06 21:08:34-05:00, alan@lxorguk.ukuu.org.uk [PATCH] ULi support for 526X tulip variants Signed-off-by: Alan Cox from a 2.4 change by Clear Zhang (signed off by Clear Zhang) Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.4, 2005-01-06 21:08:19-05:00, akpm@osdl.org [PATCH] Multicast filtering for tun.c From: Shaun Jackman This patch adds multicast filtering to the TUN network driver, for packets being sent from the network device to the character device. * drivers/net/tun.c: Add multicast filtering for packets travelling from the network device to the character device. * include/linux/if_tun.h (tun_struct): Add interface flags, a hardware device addres, and a multicast filter. Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.3, 2005-01-06 21:08:07-05:00, akpm@osdl.org [PATCH] xircom_tulip_cb.c build fix From: Bernhard Rosenkraenzer , Adrian Bunk - Define `debug' before using it. - remove now-unneeded module_parm_array hack. Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.2, 2005-01-06 21:07:54-05:00, akpm@osdl.org [PATCH] net: Netconsole poll support for 3c509 From: Con Kolivas This patch provides poll support to allow netconsole to work with 3c509 network cards. Status: Compiled, debugged and tested working by Michael Buesch. Signed-off-by: Con Kolivas Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.4.1, 2005-01-06 21:07:40-05:00, akpm@osdl.org [PATCH] via-rhine warning fix drivers/net/via-rhine.c: In function `rhine_init_one': drivers/net/via-rhine.c:864: warning: long unsigned int format, pointer arg (arg 4) Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.3.4, 2005-01-07 03:05:26+01:00, bzolnier@trik.(none) [ide] fix erroneous rq->buffer = NULL in ide-io.c:ide_dma_timeout_retry() From: Prarit Bhargava Please see discussion related to this patch here, http://marc.theaimsgroup.com/?l=linux-ide&m=110485007824374&w=2 Acked-by: Jens Axboe Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2247, 2005-01-06 17:58:16-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] Fix up compiler inefficiencies Oh, bugger... The recent mmzone.h change triggered some very, very ugly things in next_zone(), is_highmem(), is_normal() and zone_idx() because it changed the size of "struct zone" subtly. Pointer subtraction is no fun when sizeof of object gets weird and poor gcc blows its brains out trying to optimize that... This slowed down an ARM cross-build by a factor of 2.5. Turn the pointer subtraction tests into pointer addition tests instead where possible, making them trivial to deal with (and gets better code, in addition to faster compile). zone_idx() still does a subtraction. ChangeSet@1.2229.3.3, 2005-01-07 02:47:15+01:00, bzolnier@trik.(none) [ide] disable debug in IDE ppc/pmac driver Ben did not disagree to hide the 3 additional lines printed when booting my ibook with the 'quiet' cmdline option. I think these debug printk have no real value for normal operation. Signed-off-by: Olaf Hering Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.3.2, 2005-01-07 02:42:30+01:00, bzolnier@trik.(none) [ide] remove CRD-8480C from the DMA blacklist Reported to work OK by Daniel Robitaille . Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.3.1, 2005-01-07 02:35:49+01:00, bzolnier@trik.(none) [ide] remove pci_disable_device() calls from setup-pci.c and sgiioc4.c On Mon, 03 Jan 2005 21:44:33 +0000, Alan Cox wrote: > > Different PCI functions are but nothing requires that the PCI function > that is the IDE controller is only the IDE controller. In some cases > other logic lives in the "spare" BAR register areas of the device. > > One example where the weird design makes it obvious is the CS5520. Here > the 5520 bridge has the IDE in one BAR and all sorts of other logic > (including the xBUS virtual ISA environment) in the same PCI function. > On that chip a pci_disable_device on the IDE pci_dev turns off mundane > things like the timer chips keyboard and mouse 8). > > Other vendors do equally evil things and providing the chip reports IDE > class and has the IDE BARs set up nobody else is any the wiser and > presumably gate count goes down. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.2229.2.5, 2005-01-06 19:47:40-05:00, akpm@osdl.org [PATCH] r8169: oversized driver field for ethtool From: Francois Romieu Reported by Richard Dawe : - RTL8169_DRIVER_NAME contains more than the 32 characters allowed for the driver field; - remove RTL8169_DRIVER_NAME as it is only used once. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.2.4, 2005-01-06 19:47:22-05:00, akpm@osdl.org [PATCH] r8169: reduce max MTU for large frames From: Francois Romieu The device does not support the whole mtu range it claims. Experimenting with the Tx threshold and/or the PCI burst size does not seem to improve the behavior. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.2.3, 2005-01-06 19:47:06-05:00, akpm@osdl.org [PATCH] r8169: Large Send enablement From: Francois Romieu Large Send enablement. Acked-by: Francois Romieu Signed-off-by: Jon Mason Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.2.2, 2005-01-06 19:46:44-05:00, akpm@osdl.org [PATCH] r8169: C 101 From: Francois Romieu Back to C101 and code which gives the expected result. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2229.2.1, 2005-01-06 19:46:27-05:00, akpm@osdl.org [PATCH] r8169: missing netif_poll_enable and irq ack From: Francois Romieu - (noticed by Jon D. Mason) rtl8169_wait_for_quiescence() needs to disable the NAPI processing but it has no reason to lock any part of the driver which would try to do the same at a later time. Let's reenable NAPI processing as soon as possible. - properly ack any aborted interruption: a reset of the device is not always enough. Signed-off-by: Francois Romieu Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik ChangeSet@1.2245, 2005-01-06 16:41:45-08:00, torvalds@ppc970.osdl.org Merge http://lia64.bkbits.net/linux-ia64-release-2.6.11 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2244, 2005-01-06 16:40:16-08:00, alan@lxorguk.ukuu.org.uk [PATCH] First cut at setsid/tty locking Use the existing "tty_sem" to protect against the process tty changes too. ChangeSet@1.2243, 2005-01-06 16:40:02-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Resurrect ISICOM serial The isicom driver had bitrotted badly and although it had some 2.6 cleanup work didn't actually do anything useful. ISIcom had their own 2.4 driver which didn't work with 2.6 either but had done the hard work like the locking rewrites. So I nailed them together and then fixed some obvious bugs in the ISIcom driver version. ChangeSet@1.2215.3.4, 2005-01-07 00:37:02+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2356/1: cleanup for compliance of machine ID and ATAG for IOP platforms Patch from Dave Jiang Signed-off-by: Dave Jiang Latest IOP official release of redboot now supports the proper machine IDs for all IOP platforms and also pass in the correct amount of memory available via ATAG. Removing hard coded stuff now that we can get the proper info from redboot. Signed-off-by: Russell King ChangeSet@1.2242, 2005-01-06 16:35:37-08:00, kas@fi.muni.cz [PATCH] cosa.h ioctl numbers Make COSA ioctl numbers compatible with previous kernels. Signed-off-by: Jan "Yenya" Kasprzak Signed-off-by: Linus Torvalds ChangeSet@1.2241, 2005-01-06 16:35:24-08:00, kas@fi.muni.cz [PATCH] cosa.c intialization crash This fixes crash on insmod of the cosa.ko module - the sppp_attach() was called too early when dev->priv has not been set up yet. Signed-off-by: Jan "Yenya" Kasprzak Signed-off-by: Linus Torvalds ChangeSet@1.2240, 2005-01-06 16:35:10-08:00, yuasa@hh.iij4u.or.jp [PATCH] mips: remove duplicate _end entry This is already declared in asm-generic/sections.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2239, 2005-01-06 16:34:59-08:00, hch@lst.de [PATCH] ppc64: export ppc64_caches for afs/ntfs they use clear_page, which in turn uses ppc64_caches so it needs to be exported. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2238, 2005-01-06 16:34:44-08:00, bunk@stusta.de [PATCH] fix MTD_BLOCK2MTD dependency The patch below fixes an obviously wrong dependency. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2237, 2005-01-06 16:34:31-08:00, akpm@osdl.org [PATCH] mmc build fix Usual workaround for the gcc-2.95.x macro expansion bug. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2236, 2005-01-06 16:34:18-08:00, heiko.carstens@de.ibm.com [PATCH] s390: add missing pte_read function this patch adds the missing pte_read function and makes s390 compile again. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2235, 2005-01-06 16:34:05-08:00, akpm@osdl.org [PATCH] __GFP_ZERO pktcdvd fix Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2229.1.1, 2005-01-06 16:29:13-08:00, torvalds@ppc970.osdl.org Make pipe data structure be a circular list of pages, rather than a circular list of one page. This improves pipe throughput, and allows us to (eventually) use these lists of page buffers for moving data around efficiently. ChangeSet@1.2215.3.3, 2005-01-07 00:23:13+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2355/1: cleanup of PCI defines for IOP33x platforms Patch from Dave Jiang Signed-off-by: Dave Jiang Major cleanup of the IOP33x family platform PCI defines. Hopefully should be more coherent and removed some magic numbers. Also should be finalized with the latest redboot ATU config. Signed-off-by: Russell King ChangeSet@1.2215.3.2, 2005-01-07 00:12:42+00:00, dave.jiang@com.rmk.(none) [ARM PATCH] 2352/1: Increase amount of physical memory addressable on IOP platforms Patch from Dave Jiang Signed-off-by: Dave Jiang Move the VMALLOC_END to 0xfe000000 from 0xe8000000 to increase the amount of physical memory addressable on XScale IOP platforms. Signed-off-by: Russell King ChangeSet@1.2215.3.1, 2005-01-06 23:58:39+00:00, gtj.member@com.rmk.(none) [ARM PATCH] 2334/1: Corrects ixp4xx USB base addr and adds QMGRr/EthA/EthB in ixp4xx-regs.h Patch from George Joseph Corrects the IXP4XX_USB_BASE offset to be 0xB000 instead of overlapping TIMER at 0x5000. Also adds IXP4XX_QMGR_BASE and offsets for EthA and EthB. Signed-off-by: George T. Joseph Signed-off-by: Russell King ChangeSet@1.2215.1.5, 2005-01-06 23:27:12+00:00, rmk@flint.arm.linux.org.uk [ARM] Add basic SMP support. Add the beginnings of SMP support to the ARM architecture, providing smp.c, smp.h, and cpu.h. Convert setup.c to use per-cpu for topology initialisation. Signed-off-by: Russell King ChangeSet@1.1938.462.7, 2005-01-06 14:55:28-08:00, jbarnes@sgi.com [IA64] swiotlb.c: long line, whitespace, and other cleanup Clean up swiotlb.c a bit in preparation for some other changes that might be coming (e.g. moving it to the top level lib/ directory, adding support for more uses). Mostly whitespace and long line fixes, along with a few printk fixes. Signed-off-by: Jesse Barnes Signed-off-by: Tony Luck ChangeSet@1.2233, 2005-01-06 17:37:45-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/viro-old-eth into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2232, 2005-01-06 17:36:39-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/iomap into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2231, 2005-01-06 17:35:36-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/8390 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.2228, 2005-01-06 10:23:40-08:00, domen@coderock.org [PATCH] arm26: Remove unreferenced file Remove nowhere referenced file. (egrep "filename\." didn't find anything) Signed-off-by: Domen Puncer Signed-off-by: Ian Molton Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2227, 2005-01-06 09:10:17-08:00, torvalds@ppc970.osdl.org Use 'free_pipe_info()' helper function for pipe closedown. This avoids having fs/fifo.c having to know anything about pipe data passing details, and cleans up the code. ChangeSet@1.2226, 2005-01-05 16:12:23-08:00, dhowells@redhat.com [PATCH] FRV: Update banner comments at the top of frv arch files This updates the banner comments at the top of the frv arch files so that they don't proclaim to be part of the m68k arch and also to attribute responsibility for them to myself. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2225, 2005-01-05 16:12:09-08:00, dhowells@redhat.com [PATCH] Make pud_alloc() and pmd_alloc() non-existant on !MMU This makes the general pud_alloc() and pmd_alloc() inline functions unavailable if CONFIG_MMU is not defined. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2224, 2005-01-05 16:11:57-08:00, dhowells@redhat.com [PATCH] FRV: provide stub asm/a.out.h This provides a stub asm/a.out.h for the FRV arch. This shouldn't be necessary as FRV doesn't support the AOUT binfmt, but it seems to be required by some archs for compilation of fs/exec.c. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2223, 2005-01-05 16:11:43-08:00, dhowells@redhat.com [PATCH] FRV: remove excess argument passed to expand_stack() This removes the excess argument being passed to expand_stack() as it isn't needed in -bk8. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2222, 2005-01-05 16:11:30-08:00, dhowells@redhat.com [PATCH] FRV: vperfctr syscalls don't exist in -bk8 This marks the vperfctr syscalls as unavailable as they aren't actually implemented in -bk8. Signed-Off-By: David Howells Signed-off-by: Linus Torvalds ChangeSet@1.2221, 2005-01-05 15:46:52-08:00, torvalds@ppc970.osdl.org fbmem: don't mix code/declarations. That messes up gcc-2.95 ChangeSet@1.2220, 2005-01-05 15:36:59-08:00, clameter@sgi.com [PATCH] Make page allocator aware of requests for zeroed memory Thisintroduces __GFP_ZERO as an additional gfp_mask element to allow to request zeroed pages from the page allocator: - Modifies the page allocator so that it zeroes memory if __GFP_ZERO is set - Replace all page zeroing after allocating pages by prior allocations with allocations using __GFP_ZERO Signed-off-by: Christoph Lameter Signed-off-by: Linus Torvalds ChangeSet@1.2215.1.4, 2005-01-06 00:17:21+00:00, rmk@flint.arm.linux.org.uk [ARM] Update mach-types file. Signed-off-by: Russell King ChangeSet@1.2215.1.3, 2005-01-05 23:58:22+00:00, rmk@flint.arm.linux.org.uk [ARM] Quieten compiler warnings, etc with ARM set_pmd() Signed-off-by: Russell King ChangeSet@1.2215.1.2, 2005-01-05 23:44:45+00:00, buytenh@org.rmk.(none) [ARM PATCH] 2351/1: fix compilation for ixp2000 enp2611 and ixdp2400 platforms Patch from Lennert Buytenhek Instead of 'struct sys_timer', the ixdp2400 code has 'struct timer' and the enp2611 has just 'struct', preventing compilation for both machine types. This patch fixes it up. Signed-off-by: Lennert Buytenhek Signed-off-by: Russell King ChangeSet@1.2215.1.1, 2005-01-05 23:38:44+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2348/1: Fix IXDP2800 PCI irq mapping Patch from Deepak Saxena Our case statments are looking at the devfn, but the existing code does a switch(PCI_SLOT(dev->devfn)). This causes all PCI devices behind the first bridge to be configured with IRQ 0. Bad. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1971.2.1, 2005-01-05 13:12:57-08:00, davem@nuts.davemloft.net [SPARC64]: We really do need to mask the start/end args to flush_tlb_pgtables(). The callers used to do it, but with the 4-level page table code this is no longer the case. Noticed by Nick Piggin and Andrew Morton. Signed-off-by: David S. Miller ChangeSet@1.2218, 2005-01-05 11:12:32-08:00, torvalds@ppc970.osdl.org Merge bk://drm.bkbits.net/drm-linus into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.2217, 2005-01-05 11:11:30-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] Fix megaraid oops on unload Reported by Wakko Warner. The megaraid driver is trying to remove a non-empty directory in procfs. Trivially fixed by first unregistering the driver, which will remove all the per-controller files in the megaraid directory, and only _then_ removing the megaraid /proc directory entry. ChangeSet@1.2216, 2005-01-05 19:11:47+01:00, dwmw2@shinybook.infradead.org Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 ChangeSet@1.1938.472.17, 2005-01-05 19:08:53+01:00, domen@coderock.org MTD: Remove gratuitous (void *) casts. Signed-off-by: Domen Puncer Signed-off-by: David Woodhouse ChangeSet@1.1938.472.16, 2005-01-05 18:53:19+01:00, dwmw2@shinybook.infradead.org MTD: Remove long-obsolete DiskOnChip 1000 driver. ChangeSet@1.1938.472.15, 2005-01-05 18:47:09+01:00, dwmw2@shinybook.infradead.org MTD: Cosmetic ident catchup. Let the CVS idents catch up where changes have been made upstream. Signed-off-by: David Woodhouse ChangeSet@1.1938.472.14, 2005-01-05 18:43:36+01:00, dwmw2@shinybook.infradead.org [MTD] add missing dependencies on MTD_PARTITIONS Signed-off-by: Adrian Bunk Signed-off-by: David Woodhouse ChangeSet@1.1938.472.13, 2005-01-05 18:39:49+01:00, dwmw2@shinybook.infradead.org MTD: Fix config option name in Makefile for IBM 750FX/750GX boards. Also some cosmetic fixes in the map driver itself. Signed-off-by: David Woodhouse ChangeSet@1.1938.472.12, 2005-01-05 18:36:19+01:00, dwmw2@shinybook.infradead.org MTD: include moduleparam.h in DiskOnChip driver Signed-off-by: David Woodhouse ChangeSet@1.1938.472.11, 2005-01-05 18:25:43+01:00, rpurdie@rpsys.net MTD SharpSL NAND driver: Calculate partitions sizes at runtime. This allows one kernel build to support multiple machines. Signed-off-by: Richard Purdie Signed-off-by: David Woodhouse ChangeSet@1.1938.472.10, 2005-01-05 18:22:57+01:00, joern@wh.fh-wedel.de [MTD] New blockdev-backed 'fake' MTD device. Rewritten alternative driver by Gareth Bult and Jörn Engel. Signed-off-by: David Woodhouse ChangeSet@1.1938.472.9, 2005-01-05 18:17:59+01:00, juhl-lkml@dif.dk [MTD] remove unnecessary casts from drivers/mtd/maps/nettel.c and kill two warnings I took a look at the cause for these warnings in the 2.6.10 kernel, drivers/mtd/maps/nettel.c:361: warning: assignment makes pointer from integer without a cast drivers/mtd/maps/nettel.c:395: warning: assignment makes pointer from integer without a cast and as far as I can see the casts in there (to unsigned long and back to void*) are completely unnessesary ('virt' in 'struct map_info' is a void __iomem *), and getting rid of those casts buys us a warning free build. Signed-off-by: Jesper Juhl Signed-off-by: David Woodhouse ChangeSet@1.1938.472.8, 2005-01-05 18:15:36+01:00, dwmw2@shinybook.infradead.org [MTD] Bug in 2.6.10 mtd driver for physmem mapped flash chips The patch below fixes a small but fatal bug in the code that handles non-buswidth-aligned writes. The problem is that the code used the same index in both map_word and buf, therefore putting the wrong words in the map_word that partially contains old data and partially contains new data. The result: corrupt data is being written. Signed-off-by: Koen Martens Signed-off-by: David Woodhouse ChangeSet@1.1938.1.211, 2005-01-05 08:10:25+01:00, perex@suse.cz [ALSA] 1.0.8rc2 ChangeSet@1.2215, 2005-01-04 21:57:13-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - reduce stack size usage Reduce local variable (large struct) stack usage in zoran_do_ioctl() from 1028 bytes to 324 bytes (on x86-32) by declaring & using only 1 "struct zoran_jpg_settings" instead of 5 instances of it. Reduced from 5 * 180 bytes to 1 * 180 bytes, plus other locals in each case. Signed-off-by: Randy Dunlap Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2214, 2005-01-04 21:57:00-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - ppc/be port Attached patch adds some host<->le conversion functions for 32-bit integers. The hardware expects 32-bit integers, which the host does not always provide. With the attached patch, the hardware runs fine on PPC hardware as well. Original patch by Ben Capper . Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2213, 2005-01-04 21:56:47-08:00, rbultje@ronald.bitfreak.net [PATCH] zr36067 driver - correct jpeg app/com markers Attached patch fixes the writing of APP (application-specific) and COM (comment) markers in the JPEG stream as generated by the zr36050 or zr36060 encoders, both part of the zr36067 driver. During separating those bits out of the main zoran driver, we accidently removed the interface through which applications can adapt those markers, replacing them by unchangeable (static) markers. Some video formats, particularly Quicktime and AVI, require specific container-specific markers in the stream for interlaced streams. Those markers specify field order and such. The attached patch re-adds this feature so that decoders depending on those container-specific markers for correct playback will work correctly. Signed-off-by: Ronald S. Bultje Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2212, 2005-01-04 21:56:34-08:00, adaplas@hotpop.com [PATCH] fbdev: Reduce stack usage of intelfb Reduce stack usage in intelfb_set_par() from 2404 bytes (on x86-32) to 12 bytes. Signed-off-by: Randy Dunlap Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2211, 2005-01-04 21:56:21-08:00, adaplas@hotpop.com [PATCH] fbdev: Fix default timings in vga16fb From: Martin Wilck ..I am asking because we have encountered a video device that obviously has problems displaying the standard mode of the vga16fb driver... The default timings give a vtotal of 529 instead of 525 in 640x480@60. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2210, 2005-01-04 21:56:08-08:00, adaplas@hotpop.com [PATCH] fbdev: Add Viewsonic PF775a to broken display database Add Viewsonic PF775a to broken display database Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2209, 2005-01-04 21:55:55-08:00, adaplas@hotpop.com [PATCH] fbdev: Do a symbol_put for each symbol_get in savagefb Do a symbol_put() for each symbol_get() in savagefb. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2208, 2005-01-04 21:55:42-08:00, adaplas@hotpop.com [PATCH] fbdev: Check return value of fb_add_videomode The function fb_add_videomode can fail, check return value. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2207, 2005-01-04 21:55:29-08:00, adaplas@hotpop.com [PATCH] fbcon/fbdev: Add blanking notification Add blanking event to the notifier call chain. This can be used by fbcon to blank/unblank the console, and theoretically, by backlight drivers. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2206, 2005-01-04 21:55:16-08:00, adaplas@hotpop.com [PATCH] fbdev: Revive global_mode_option The global_mode_option is useful for choosing the initial video mode without specifying the driver, ie 'video=1024x768@60'. After the initialization cleanup, this variable was accidentally removed. This patch brings it back again. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2205, 2005-01-04 21:55:03-08:00, adaplas@hotpop.com [PATCH] fbdev: Revive BIOS-less booting for Rage XL cards The file drivers/video/aty/xlinit.c is currently unused. This file might be useful to boot some types of RageXL cards on non-x86 platforms. Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2204, 2005-01-04 21:54:49-08:00, adaplas@hotpop.com [PATCH] fbdev: Cleanup i2c code of rivafb - Change timings to as close as possible to VESA specs and use msecs_to_jiffies() instead of hard-coded number - Attempt to read all i2c busses regardless of chipset type Signed-off-by: Antonino Daplas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2203, 2005-01-04 21:54:37-08:00, jbarnes@engr.sgi.com [PATCH] fix ROM enable/disable in r128 and radeon fb drivers Both the r128 and radeon fb drivers do bad things with the PCI BAR corresponding to their option ROM. They incorrectly use the host address instead of the BAR address to enable the ROM, and then incorrectly lose the original value on unmap. This patch fixes both problems. Tested on Altix. Signed-off-by: Jesse Barnes Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2202, 2005-01-04 21:54:23-08:00, jim.hague@acm.org [PATCH] pm2fb: fix fbi image display on 24 bit depth big endian Handle 24bit on big-endian by leaving the hardware in RGB and using the colour offset to reverse red/blue. Leaving the hardware in RGB means that fbi displays images correctly (abeit fortuitously) and the console is correct, thanks to a recent patch to the console code correcting an endian bug in fbcon_putc(). Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2201, 2005-01-04 21:54:11-08:00, jim.hague@acm.org [PATCH] pm2fb: fix big-endian (Sparc) support A collection of changes that taken together makes the driver work correctly on big-endian systems, specifically Sparc. - Remove old PM2FB_BE_APERTURE define and use __BIG_ENDIAN throughout. PM2FB_BE_APERTURE wasn't defined on Sparc; this was incorrect. - Replace colour mode magic numbers with suitable constants, and tidy colour mode handling. Use BGR not RGB at 24bit on big-endian. - Replace aperture magic numbers with constants. Rearrange code to emphasise second aperture is not used. Add short explanations of aperture settings for big endian. - Update comments to note that the driver now works on Sparc. - Revisit 32bit depth colour offsets and ensure transp is set. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2200, 2005-01-04 21:53:58-08:00, jim.hague@acm.org [PATCH] pm2fb: use modedb in modules - modedb is now available in modules. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2199, 2005-01-04 21:53:45-08:00, jim.hague@acm.org [PATCH] pm2fb: save/restore memory config - From 2.4 driver: Save memory config registers at init and restore after card reset. Reset card on mode change. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2198, 2005-01-04 21:53:32-08:00, jim.hague@acm.org [PATCH] pm2fb: module parameters and module-conditional code - Update MODULE_PARM to module_param. - Omit some non-module code from module builds and vice-versa. Signed-off-by: Jim Hague Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2197, 2005-01-04 21:53:19-08:00, kraxel@bytesex.org [PATCH] fbdev: sysfs fix Make sure the fbdev sysfs class is registered before all drivers, otherwise some symlinks are missing. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2196, 2005-01-04 21:53:06-08:00, thomas@winischhofer.net [PATCH] fbdev: SiS framebuffer driver update 1.7.17 attached is an update for sisfb, lifting it up to version 1.7.17. It contains all changes done behind my back by other people (viro, torvalds, adaplas) in the meantime. Furthermore, - all remaining sparse warnings were fixed (mainly caused by the ROM code) - problems with very old and brand new BIOSes from SiS were fixed, - LCD setup was simplified, allowing more display modes than before, - UMC/charter bridge type handling was added, - a code clean-up was performed, the new FB_BLANK-flags were taken over, VBLANK status info was corrected, etc. Signed-off-by: Thomas Winischhofer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2195, 2005-01-04 21:52:52-08:00, wli@holomorphy.com [PATCH] invalidate_inodes speedup With Kirill Korotaev invalidate_inodes() can take a large amount of time searching the inode lists for inodes which belong to this fs. Add a separate list for this search. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2194, 2005-01-04 21:52:38-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: clear the recall_lru of delegations at shutdown Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2193, 2005-01-04 21:52:26-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add to the laundromat service for delegations. Walk the recall_lru and reap unused or timed-out delegations. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2192, 2005-01-04 21:52:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add the DELEGRETURN operation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2191, 2005-01-04 21:51:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add checking of delegation stateids to nfs4_preprocess_stateid_op. Call release_delegation on delegreturn (DELEG_RET). Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2190, 2005-01-04 21:51:46-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check for openmode violations given a delegation stateid. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2189, 2005-01-04 21:51:33-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: remove unnecessary stateowner existence check. At OPEN: Check for delegations in the process of being recalled. Attempt to hand out a delegation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2188, 2005-01-04 21:51:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: attempt to hand out a delegation Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2187, 2005-01-04 21:51:07-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: helper functions for deciding to grant a delegation. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2186, 2005-01-04 21:50:54-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: kernel thread for delegation callback Any task can call break_lease or time_out_leases on a v4 delegated file which results in a recall callback rpc sent to the NFSv4 client holding the delegation, and/or the FL_LEASE to be removed. Spawn a kernel thread to perform the callback. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2185, 2005-01-04 21:50:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: delegation recall callback rpc. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2184, 2005-01-04 21:50:29-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: delay nfsd_colse for delegations until reaping Because nfsd_close() can call locks_remove_flock() which removes leases, delay nfsd_close() for delegations until the delegation is reaped. Don't release an nfs4_file struct with delegations. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2183, 2005-01-04 21:50:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: changes to expire_client ... to shutdown the rpc callback client and remove all client associated delegations Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2182, 2005-01-04 21:50:03-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add the delegation release and free functions Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2181, 2005-01-04 21:49:50-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: find a delegation for a file given a stateid. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2180, 2005-01-04 21:49:38-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: allocate and initialize the delegation structure. Declare and initialize the recall_lru list. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2179, 2005-01-04 21:49:25-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: add structures for delegation support Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2178, 2005-01-04 21:49:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: get rid of the special delegation_stateid_t, use the existing stateid_t. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2177, 2005-01-04 21:48:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check for existence of file_lock parameter inside of the kernel lock. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2176, 2005-01-04 21:48:47-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: probe the callback path upon a successful setclientid_confirm Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2175, 2005-01-04 21:48:34-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: preparation for delegation: client callback probe client callback rpc to probe the callback channel on setclientid with a null request. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2174, 2005-01-04 21:48:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: count the nfs4_client structure usage ... to protect the null (probe) callback asynchronous rpc's reference. Atomically inc and set the cb_set flag. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2173, 2005-01-04 21:48:08-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: check the callback netid in gen_callback. since we only support tcp, don't save the netinfo. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2172, 2005-01-04 21:47:55-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: move nfserr_openmode checking from nfsd_read/write into nfs4_preprocess_stateid_op() in preparation for delegation state. Signed-off-by: Andy Adamson Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2171, 2005-01-04 21:47:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: trivial cleanup Trim a couple redundant comments, minor whitespace cleanup. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2170, 2005-01-04 21:47:29-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: fix dropit return We need to handle nfserr_dropit as a special case here, since we don't want to return it in the rdattr_error attribute. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2169, 2005-01-04 21:47:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify control flow Replace series of if's by a switch, remove (now unnecessary) label "out". Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2168, 2005-01-04 21:47:03-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify error handling Minor simplification of error handling in encode_dirent. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2167, 2005-01-04 21:46:50-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: move rdattr_error code to new function Move code to encode the special rdattr_error attribute to nfsd4_encode_rdattr_error(). Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2166, 2005-01-04 21:46:37-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: simplify nfs4_encode_dirent_fattr Make nfsd4_encode_dirent_fattr() slightly more concise. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2165, 2005-01-04 21:46:24-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: more readdir attribute encoding to new function Move readdir attribute encoding to nfsd4_encode_dirent_fattr(), remove the (no-longer used) error label. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2164, 2005-01-04 21:46:12-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: superfluous local variables The local variables bmval0 and bmval1 turn out not to really help much. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2163, 2005-01-04 21:45:59-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: encode_dirent: superfluous assignment Remove unused assignment Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2162, 2005-01-04 21:45:46-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4 encode_dirent cleanup No sensible client is ever going to request only the RDATTR_ERROR attribute, so there's no point optimizing for that case. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2161, 2005-01-04 21:45:32-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: use the fsid export option when returning the fsid attribute Return the special NFSv4 pseudo filesystem fsid (0/0) in a GETATTR on an NFSv4 pseudo filesystem node. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2160, 2005-01-04 21:45:20-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: fix fileid in readdir responses We were reporting mounted_on fileid instead of fileid in readdir responses. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2159, 2005-01-04 21:45:08-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: rpcsec_gss: comparing pointer to 0 instead of NULL Just noticed while fixing some other sparse-related stuff. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2158, 2005-01-04 21:44:55-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd4: fix open_downgrade decode error. Fix open downgrade decode error. Signed-off-by: Andy Adamson Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2157, 2005-01-04 21:44:42-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: svcrpc: share code duplicated between auth_unix and auth_null Call a helper function from svcauth_unix_accept() and svcauth_null_accept() instead of duplicating code. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2156, 2005-01-04 21:44:30-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: svcrpc: auth_null fixes Fix some discrepencies between the server-side auth_null and auth_unix rpc code: in particular, make sure we return an auth error in the auth_null case instead of dropping when we fail to match an export entry, and make sure such responses are encoded correctly. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2155, 2005-01-04 21:44:16-08:00, neilb@cse.unsw.edu.au [PATCH] knfsd: nfsd_translate_wouldblocks -EAGAIN has a special treatment in the nfsd code since it's used to indicate that an upcall has been initiated and that a request should be dropped pending the upcall result. But when the break_lease functions return -EWOULDBLOCK (==-EAGAIN on most architectures), we actually prefer to return nfserr_jukebox. So translate -EAGAIN returns to -ETIMEDOUT (which will be translated to nfserr_jukebox). Undo the mapping of -EWOULDBLOCK to nfserr_jukebox, since on most architectures that has the undesireable effect of mapping -EAGAIN to nfserr_jukebox. Signed-off-by: J. Bruce Fields Signed-off-by: Neil Brown Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2154, 2005-01-04 21:44:04-08:00, penberg@cs.helsinki.fi [PATCH] oprofile: minor cleanups This patch has the following cleanups to oprofile: - Remove spurious casts - vfree() accepts NULL pointers so remove redundant test - The parameter for __free_cpu_buffer() is not used so merge the function with free_cpu_buffer() Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2153, 2005-01-04 21:43:51-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update sparc64 for api changes oprofile sparc64 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2152, 2005-01-04 21:43:39-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update sh for api changes oprofile sh arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2151, 2005-01-04 21:43:26-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update s390 for api changes oprofile s390 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2150, 2005-01-04 21:43:13-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update parisc for api changes oprofile parisc arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2149, 2005-01-04 21:43:03-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update ppc for api changes oprofile ppc64 arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2148, 2005-01-04 21:42:50-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update arm for api changes oprofile arm arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2147, 2005-01-04 21:42:37-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: update alpha for api changes oprofile alpha arch updates, including some internal API changes. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2146, 2005-01-04 21:42:25-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: ia64 support for oprofile stack trace sampling oprofile ia64 arch updates, including some internal API changes and support for stack trace sampling. Signed-off-by: John Levon Signed-off-by: Keith Owens Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2145, 2005-01-04 21:42:11-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: i386 support for stack trace sampling oprofile i386 arch updates, including some internal API changes and support for stack trace sampling. (akpm: I added a nasty hack to fix the x86_64 build. However the feature is untested on x86_64 and probably doesn't work yet). Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2144, 2005-01-04 21:41:57-08:00, gnb@sgi.com [PATCH] oprofile: backtrace operation does not initialized Allow stack tracing to work when sampling on timer is forced using the timer=1 boot option. Reported by Akinobu Mita. Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2143, 2005-01-04 21:41:45-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: arch-independent code for stack trace sampling oprofile arch-independent updates, including some internal API changes and support for stack trace sampling. Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2142, 2005-01-04 21:41:31-08:00, gnb@melbourne.sgi.com [PATCH] oprofile: add check_user_page_readable() Add check_user_page_readable() for kernel modules which need to follow user space addresses but can't use get_user(). Signed-off-by: John Levon Signed-off-by: Greg Banks Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2141, 2005-01-04 21:41:17-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: eliminate unaligned accesses by policy loading code This patch rewrites the SELinux next_entry() function and all callers to copy entry data from the binary policy into properly aligned buffers, eliminating unaligned accesses. This patch is in response to a bug report from Prarit Bhargava for SELinux and ia64, and he has confirmed that this patch eliminates the unaligned access warnings. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2140, 2005-01-04 21:41:04-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: add member node to selinuxfs This patch adds a member node to selinuxfs to export the security_member_sid interface to userspace for obtaining security polyinstantiation decisions. Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2139, 2005-01-04 21:40:51-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: enhance SELinux control of executable mappings This patch adds new permission checks to the SELinux mmap and mprotect hooks to enable control over the ability to make executable a mapping that can contain data not covered by the existing file-based permission checks. The task->self execmem permission controls the ability to create an executable anonymous mapping or a writable executable private file mapping. The task->file execmod permission controls the ability to make executable a previously written private file mapping, e.g. for text relocations. Thanks to Roland McGrath for input and feedback on earlier versions of this patch. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2138, 2005-01-04 21:40:39-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: add dynamic context transition support to SELinux This patch for adds dynamic context transition support to SELinux via writes to the existing /proc/pid/attr/current interface. Previously, SELinux only supported exec-based context transitions. This functionality allows privileged applications to apply privilege bracketing without necessarily being refactored to an exec-based model (although such a model has advantages in least privilege and isolation). A process must have setcurrent permission to use this mechanism at all, and the dyntransition permission must be granted between the old and new security contexts. Multi-threaded processes are not allowed to use this operation, as it will yield an inconsistency among the security contexts of the threads sharing the same mm. Ptrace permission is revalidated against the new context if the process is being ptraced. Author: Darrel Goeddel Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2137, 2005-01-04 21:40:25-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: audit task comm if exe cannot be determined This patch ensures that the comm is included in the audit message if avc_audit is unable to determine the exe due to the mmap_sem being held. This is helpful in tracking down the causes of permission denials that occur in the mmap/mprotect hooks. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2136, 2005-01-04 21:40:12-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: update selinux_task_setscheduler This patch updates the selinux_task_setscheduler hook function to use the standard helper for task permission checks since it is now safe to audit from this hook (due to the upstream change to setscheduler() to not hold the runqueue lock during the security hook call). Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2135, 2005-01-04 21:39:59-08:00, sds@epoch.ncsc.mil [PATCH] SELinux: regenerate SELinux module headers This patch regenerates the SELinux module headers to use a new format and updates their use by the AVC. Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2134, 2005-01-04 21:39:47-08:00, jmorris@redhat.com [PATCH] SELinux scalability: AVC statistics and tuning This patch adds an selinuxfs based API to the AVC, to allow monitoring of the cache, and tuning of the cache size. The latter is mediated via the new setsecparam permission. AVC statistics may be monitored via the avcstat utility: http://people.redhat.com/jmorris/selinux/perf/avcstat.c Signed-off-by: James Morris Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2133, 2005-01-04 21:39:34-08:00, jmorris@redhat.com [PATCH] SELinux: atomic_dec_and_test() bug Atomic underflow debugging in this kernel exposed a bug in the AVC RCU code, fix below. The effect of this bug would be delayed node reclamation. Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2132, 2005-01-04 21:39:21-08:00, jmorris@redhat.com [PATCH] SELinux scalability: convert AVC to RCU The following patch improves the scalability of SELinux by replacing the global avc_lock with an RCU based scheme by Kaigai Kohei. The size of the cache is made tunable, to allow administrators to tune systems for different workloads, while statistics are exported via selinuxfs to allow AVC performance to be monitored at a low level. AVC nodes are also allocated now via a slab cache, and AVC references have been removed from the code. This code has been extensively tested and benchmarked (see benchmark results below). Baseline performance is not improved, although it is clear that dramatic scalability improvements are achieved. Baseline performance and networking scalability are areas where work is ongoing (in particular, we need to add caching of some network security objects so that we don't fallback to policy database lookups on each permission call). Benchmark results: =============================================================================================== System: 4 node 16-way IA64 NUMA - 'Stream' is based on http://www.cs.virginia.edu/stream/ , HPC memory bandwidth test, higher result is better. - Hackbench: scheduler scalability benchmark by Rusty, lower is better. Standard kernel: 2.6.9-1.648_EL SELINUX=0 : Stream 6159.987MB/s HackBench 53.144 2.6.9-1.648_EL SELINUX=1 : Stream 5872.529MB/s HackBench 1043.132 Kernel with RCU/AVC patches: 2.6.9-1.689_avcrcu.root SELINUX=0 : Stream 8829.647MB/s HackBench 53.976 2.6.9-1.689_avcrcu.root SELINUX=1 : Stream 8817.117MB/s HackBench 50.975 =============================================================================================== System: 8-way PIII 900Mhz Xeon with 9GB RAM Fileystem: ext2 for all testing. Notes: AVC was reset before tests, so avc was flushed. System was run in enforcing mode. Key: std-nolsm: standard kernel with LSM disabled std-lsmcap: standard kernel with LSM enabled, capabilities LSM std-sel-strict: standard kernel with SELinux enabled, capabilities secondary LSM rcu-sel-strict: as above with RCU & AVC stats patches ChangeSet@1.2131, 2005-01-04 21:39:08-08:00, jmorris@redhat.com [PATCH] SELinux scalability: add spin_trylock_irq and spin_trylock_irqsave This patch from Kaigai Kohei adds irq and irqsave trylock spinlock variants for use by the SELinux AVC RCU patch. Signed-off-by: Kaigai Kohei Signed-off-by: Stephen Smalley Signed-off-by: James Morris Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2130, 2005-01-04 21:38:55-08:00, oleg@tv-sign.ru [PATCH] uninline/kill __exit_mm() __exit_mm() is an inlined version of exit_mm(). This patch unifies them. Saves 356 byte in exit.o. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2129, 2005-01-04 21:38:42-08:00, roland@redhat.com [PATCH] task_struct.exit_state usage I just did a quick audit of the use of exit_state and the EXIT_* bit macros. I guess I didn't really review these changes very closely when you did them originally. :-( I found several places that seem like lossy cases of query-replace without enough thought about the code. Linus has previously said the >= tests ought to be & tests instead. But for exit_state, it can only ever be 0, EXIT_DEAD, or EXIT_ZOMBIE--so a nonzero test is actually the same as testing & (EXIT_DEAD|EXIT_ZOMBIE), and maybe its code is a tiny bit better. The case like in choose_new_parent is just confusing, to have the always-false test for EXIT_* bits in ->state there too. The two cases in wants_signal and do_process_times are actual regressions that will give us back old bugs in race conditions. These places had s/TASK/EXIT/ but not s/state/exit_state/, and now there tests for exiting tasks are now wrong and never catching them. I take it back: there is no regression in wants_signal in practice I think, because of the PF_EXITING test that makes the EXIT_* state checks superfluous anyway. So that is just another cosmetic case of confusing code. But in do_process_times, there is that SIGXCPU-while-exiting race condition back again. Signed-off-by: Roland McGrath Acked-by: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2128, 2005-01-04 21:38:28-08:00, roland@redhat.com [PATCH] move waitchld_exit from task_struct to signal_struct There is really no point in each task_struct having its own waitchld_exit. In the only use of it, the waitchld_exit of each thread in a group gets woken up at the same time. So, there might as well just be one wait queue for the whole thread group. This patch does that by moving the field from task_struct to signal_struct. It should have no effect on the behavior, but saves a little work and a little storage in the multithreaded case. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2127, 2005-01-04 21:38:15-08:00, roland@redhat.com [PATCH] fix ptracer death race yielding bogus BUG_ON There is a BUG_ON in ptrace_stop that hits if the thread is not ptraced. However, there is no synchronization between a thread deciding to do a ptrace stop and so going here, and its ptracer dying and so detaching from it and clearing its ->ptrace field. The RHEL3 2.4-based kernel has a backport of a slightly older version of the 2.6 signals code, which has a different but equivalent BUG_ON. This actually bit users in practice (when the debugger dies), but was exceedingly difficult to reproduce in contrived circumstances. We moved forward in RHEL3 just by removing the BUG_ON, and that fixed the real user problems even though I was never able to reproduce the scenario myself. So, to my knowledge this scenario has never actually been seen in practice under 2.6. But it's plain to see from the code that it is indeed possible. This patch removes that BUG_ON, but also goes further and tries to handle this case more gracefully than simply avoiding the crash. By removing the BUG_ON alone, it becomes possible for the real parent of a process to see spurious SIGCHLD notifications intended for the debugger that has just died, and have its child wind up stopped unexpectedly. This patch avoids that possibility by detecting the case when we are about to do the ptrace stop but our ptracer has gone away, and simply eliding that ptrace stop altogether as if we hadn't been ptraced when we hit the interesting event (signal or ptrace_notify call for syscall tracing or something like that). Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2126, 2005-01-04 21:38:01-08:00, roland@redhat.com [PATCH] move group_exit flag into signal_struct.flags word After my last change, there are plenty of unused bits available in the new flags word in signal_struct. This patch moves the `group_exit' flag into one of those bits, saving a word in signal_struct. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2125, 2005-01-04 21:37:48-08:00, roland@redhat.com [PATCH] fix stop signal race The `sig_avoid_stop_race' checks fail to catch a related race scenario that can happen. I don't think this has been seen in nature, but it could happen in the same sorts of situations where the observed problems come up that those checks work around. This patch takes a different approach to catching this race condition. The new approach plugs the hole, and I think is also cleaner. The issue is a race between one CPU processing a stop signal while another CPU processes a SIGCONT or SIGKILL. There is a window in stop-signal processing where the siglock must be released. If a SIGCONT or SIGKILL comes along here on another CPU, then the stop signal in the midst of being processed needs to be discarded rather than having the stop take place after the SIGCONT or SIGKILL has been generated. The existing workaround checks for this case explicitly by looking for a pending SIGCONT or SIGKILL after reacquiring the lock. However, there is another problem related to the same race issue. In the window where the processing of the stop signal has released the siglock, the stop signal is not represented in the pending set any more, but it is still "pending" and not "delivered" in POSIX terms. The SIGCONT coming in this window is required to clear all pending stop signals. But, if a stop signal has been dequeued but not yet processed, the SIGCONT generation will fail to clear it (in handle_stop_signal). Likewise, a SIGKILL coming here should prevent the stop processing and make the thread die immediately instead. The `sig_avoid_stop_race' code checks for this by examining the pending set to see if SIGCONT or SIGKILL is in it. But this fails to handle the case where another CPU running another thread in the same process has already dequeued the signal (so it no longer can be found in the pending set). We must catch this as well, so that the same problems do not arise when another thread on another CPU acted real fast. I've fixed this dumping the `sig_avoid_stop_race' kludge in favor of a little explicit bookkeeping. Now, dequeuing any stop signal sets a flag saying that a pending stop signal has been taken on by some CPU since the last time all pending stop signals were cleared due to SIGCONT/SIGKILL. The processing of stop signals checks the flag after the window where it released the lock, and abandons the signal the flag has been cleared. The code that clears pending stop signals on SIGCONT generation also clears this flag. The various places that are trying to ensure the process dies quickly (SIGKILL or other unhandled signals) also clear the flag. I've made this a general flags word in signal_struct, and replaced the stop_state field with flag bits in this word. Signed-off-by: Roland McGrath Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2124, 2005-01-04 21:37:34-08:00, coywolf@gmail.com [PATCH] remove redundant sys_delete_module() Peter Chubb recently split out a standalone sys_ni.c file for the not implemented syscalls. This patch removes the redundant sys_delete_module() in module.c. Signed-off-by: Coywolf Qi Hunt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2123, 2005-01-04 21:37:20-08:00, oleg@tv-sign.ru [PATCH] fix conflicting cpu_idle() declarations cpu_idle() is referenced from generic code (init/main.c). It is declared/defined in init/main.c: void cpu_idle(void) i386/kernel/process.c void cpu_idle(void) i386/kernel/smpboot.c: int cpu_idle(void) i386/mach-voyager/voyager_smp.c: int cpu_idle(void) ppc/kernel/idle.c: int cpu_idle(void) ppc/kernel/smp.c: int cpu_idle(void *unused) ppc64/kernel/idle.c: int cpu_idle(void) ppc64/kernel/smp.c: int cpu_idle(void *unused) sparc/kernel/process.c: int cpu_idle(void) sparc64/kernel/process.c: int cpu_idle(void) sh/kernel/process.c: void cpu_idle(void *unused) sh/kernel/smp.c: int cpu_idle(void *unused) ia64/kernel/smpboot.c: int cpu_idle(void) ia64/kernel/process.c: void cpu_idle(void *unused) sh64/kernel/process.c: void cpu_idle(void *unused) s390/kernel/process.c: int cpu_idle(void) s390/kernel/smp.c: int cpu_idle(void * unused) m32r/kernel/process.c: void cpu_idle(void) m32r/kernel/smpboot.c int cpu_idle(void) Other arches beleive that cpu_idle is void(void). This patch puts 'void cpu_idle(void)' in include/linux/smp.h and fixes conflicting definitions. Also removes now unneeded declarations in x86_64, alpha, parisc. Only i386 part is tested. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2122, 2005-01-04 21:37:07-08:00, james4765@verizon.net [PATCH] lcd: fix memory leak, code cleanup This patch addresses the following issues: - Fix log-spamming and cryptic error messages, and add KERN_ constants. - Convert some ints to unsigned ints. - Add checks for CAP_SYS_ADMIN for FLASH_Burn and FLASH_Erase ioctls. - Identify use of global variable. - Fix memory leak in FLASH_Burn ioctl. - Fix error return codes in lcd_ioctl(). - Move variable "index" in lcd_ioctl() to smaller scope to reduce memory usage. - Convert cli()/sti() to spin_lock_irqsave()/spin_unlock_irqrestore(). Fix legibility issues in FLASH_Burn ioctl. Signed-off-by: James Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2121, 2005-01-04 21:36:54-08:00, werner@almesberger.net [PATCH] prio_tree: move general code from mm/ to lib/ Last but not least, move the general prio_tree code from mm/ to lib/. This patch also duplicates some macros, which are used in the VMA code for debugging purposes, so we can't properly separate them yet. Note that this patch conflicts with a patch in 2.6.10-rc3-mm1 (frv-better-mmap-support-in-uclinux.patch), which removes mm/prio_tree in systems without an MMU. Not making that other patch provide a dummy for prio_tree_init should resolve the conflict. (That's just from reading the patch - I haven't actually tried this.) Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2120, 2005-01-04 21:36:41-08:00, werner@almesberger.net [PATCH] prio_tree: generalization Export prio_tree functions such that they can be used by other subsystems than only VMAs. Also adds a mode to prio_tree to use it with keys explicitly included in the prio_tree meta-data. The plan is to also consider converting VMAs to use explicit keys, so that the old "raw" mode can be removed. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2119, 2005-01-04 21:36:27-08:00, werner@almesberger.net [PATCH] prio_tree: roll call to prio_tree_first into prio_tree_next Allow prio_tree_next to be used as the only function for tree traversal, similar to how vma_prio_tree_next works. This patch isn't needed for the generalization, but since it affects the API, it's better to include it first. Signed-off-by: Werner Almesberger Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2118, 2005-01-04 21:36:15-08:00, akpm@osdl.org [PATCH] msync(): set PF_SYNCWRITE Pass the "we are doing synchronous writes" hint down from msync(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2117, 2005-01-04 21:36:02-08:00, nanhai.zou@intel.com [PATCH] compat: sigtimedwait - Merge sys32_rt_sigtimedwait function in X86_64, IA64, PPC64, MIPS, SPARC64, S390 32 bit layer into 1 compat_rt_sigtimedwait function. It will also fix a bug of copy wrong information to 32 bit userspace siginfo structure on X86_64, IA64 and SPARC64 when calling sigtimedwait on 32 bit layer. - Change all name the of siginfo_t32 structure in X86_64, IA64, MIPS, SPARC64 and S390 to the name compat_siginfo_t as used in PPC64. - Patch introduced a macro __COMPAT_ENDIAN_SWAP__ in include/asm-mips/compat.h when MIPS kernel is compiled in little-endian mode. This macro is used to do byte swapping in function sigset_from_compat. - This patch is only tested on X86_64 and IA_64. Signed-off-by: Zou Nan hai Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2116, 2005-01-04 21:35:46-08:00, hch@lst.de [PATCH] remove dead ext3_put_inode prototype ext3_put_inode has been removed a while ago. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2115, 2005-01-04 21:35:33-08:00, hch@lst.de [PATCH] udf: fix reservation discarding UDF discards file preallocations on every ->put_inode which is totally bogus. It already discards them in ->release which makes sense for normal writes, so the only additional discard is in ->clear_inode so we make sure we don't leak any reservations for shared writeable mappings. This follows similar changes to ext2 and ext3. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2114, 2005-01-04 21:35:19-08:00, hch@lst.de [PATCH] udf: simplify udf_iget, fix race udf_iget calls __udf_read_inode after the inode has been unlocked and other threads could access it. Switching to iget_locked() fixes this race and nicely simplifies the code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2113, 2005-01-04 21:35:06-08:00, zwane@arm.linux.org.uk [PATCH] Remove RCU abuse in cpu_idle() Introduce cpu_idle_wait() on architectures requiring modification of pm_idle from modules, this will ensure that all processors have updated their cached values of pm_idle upon exit. This patch is to address the bug report at http://bugme.osdl.org/show_bug.cgi?id=1716 and replaces the current code fix which is in violation of normal RCU usage as pointed out by Stephen, Dipankar and Paul. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2112, 2005-01-04 21:34:52-08:00, mason@suse.com [PATCH] __getblk_slow can loop forever when pages are partially mapped When a block device is accessed via read/write, it is possible for some of the buffers on a page to be mapped and others not. __getblk and friends assume this can't happen, and can end up looping forever when pages have some unmapped buffers. Picture: lseek(/dev/xxx, 2048, SEEK_SET) write(/dev/xxx, 2048 bytes) Assuming the block size is 1k, page 0 has 4 buffers, two are mapped by __block_prepare_write and two are not. Next, another process triggers getblk(/dev/xxx, blocknr = 0); __getblk_slow will loop forever. __find_get_block fails because the buffer isn't mapped. grow_dev_page does nothing because there are buffers on the page with the correct size. madhav@veritas.com and others at Veritas tracked this down. The fix below has two parts. First, it changes __find_get_block to avoid the buffer_error warnings when it finds unmapped buffers on the page. Second, it changes grow_dev_page to map the buffers on the page by calling init_page_buffers. init_page_buffers is changed so we don't stomp on uptodate bits for the buffers. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2111, 2005-01-04 21:34:39-08:00, kaneshige.kenji@jp.fujitsu.com [PATCH] IRQ resource deallocation: ia64 This is an ia64 portion of IRQ resource deallocation. It implements pcibios_disable_device() and acpi_unregister_gsi() for ia64. o acpi_unregister_gsi() Summary of changes for implementing this interface: - Add new function iosapic_unregister_intr() into arch/ia64/kernel/iosapic.c. This function frees an interrupt vector and related data structures. - Add new function free_irq_vector() into arch/ia64/kernel/irq_ia64.c. This frees an unused vector. - Change assign_irq_vector() to be able to support free_irq_vector(). o pcibios_disable_device() This calls acpi_pci_irq_disable() to deallocate IRQ resources. Signed-off-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2110, 2005-01-04 21:34:25-08:00, kaneshige.kenji@jp.fujitsu.com [PATCH] IRQ resource deallocation: ACPI Architecture dependent IRQ resources such as interrupt vector for PCI devices are allocated at pci_enable_device() time on i386, x86-64 and ia64 platform. Today, however, these IRQ resources are never deallocated even if they are no longer used. The following set of patches adds supports to deallocate IRQ resources at pci_disable_device() time. The motivation of the set of patches is as follows: - IRQ resources such as interrupt vectors should be freed if they are no longer used because the amount of these resources are limited. By deallocating IRQ resources, we can recycle them. - I think some hardwares will support hot-pluggable I/O units with I/O xAPICs in the near future. So I/O xAPIC hot-plug support by OS will be needed soon. IRQ resouces deallocation will be one of the most important stuff for I/O xAPIC hot-plug. For now, the following set of patches has ia64 implementation only. i386 and x86_64 implementations are TBD. This patch is ACPI portion of IRQ deallocation. This patch defines the following new interface. The implementation of this interface depends on each platform. o void acpi_unregister_gsi(u32 gsi) This is a opposite portion of acpi_register_gsi(). This has a responsibility for deallocating IRQ resources associated with the specified GSI number. We need to consider the case of shared interrupt. In the case of shared interrupt, acpi_register_gsi() is called multiple times for one gsi. That is, registrations and unregistrations can be nested. This function undoes the effect of one call to acpi_register_gsi(). If this matches the last registration, IRQ resources associated with the specified GSI number are freed. This patch also adds the following new function. o void acpi_pci_irq_disable (struct pci_dev *dev) This function is a opposite portion of acpi_pci_enable_irq(). It clears the device's linux IRQ number and calls acpi_unregister_gsi() to deallocate IRQ resources. Signed-off-by: Kenji Kaneshige Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2109, 2005-01-04 21:34:13-08:00, manfred@colorfullife.com [PATCH] fix missing wakeup in ipc/sem My patch that removed the spin_lock calls from the tail of sys_semtimedop introduced a bug: Before my patch was merged, every operation that altered an array called update_queue. That call woke up threads that were waiting until a semaphore value becomes 0. I've accidentially removed that call. The attached patch fixes that by modifying update_queue: the function now loops internally and wakes up all threads. The patch also removes update_queue calls from the error path of sys_semtimedop: failed operations do not modify the array, no need to rescan the list of waiting threads. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2108, 2005-01-04 21:34:00-08:00, agruen@suse.de [PATCH] Ext[23]: apply umask to symlinks with ACLs configured out Keith Young has reported that when ACLs are not compiled in, the default implementation of ext[23]_init_acl applies the umask to all new files, including symlinks, which is wrong. In this case the VFS already takes care of applying the umask when needed, so ext2 and ext3 need not bother about it. Remove the superfluous statements. Signed-off-by: Andreas Gruenbacher Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2107, 2005-01-04 21:33:47-08:00, akpm@osdl.org [PATCH] get_blkdev_list() cleanup - Move prototype to genhd.h - It is only needed for /proc Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2106, 2005-01-04 21:33:34-08:00, sfr@canb.auug.org.au [PATCH] noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T Since asm-generic/siginfo.h was created, the architectures have been slowly fixed/modified until noone uses HAVE_ARCH_SI_CODES or HAVE_ARCH_SIGEVENT_T any more, so this patch removes the checks for them. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2105, 2005-01-04 21:33:21-08:00, franz_pletz@t-online.de [PATCH] loop device resursion avoidance With Andries Brouwer Fix various recursion scenarios wherein it was possible to mount a loop device on itself, either directly or via intermediate loops devices. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2104, 2005-01-04 21:33:09-08:00, penberg@cs.helsinki.fi [PATCH] noop iosched: remove unused includes This patch removes unused includes from drivers/block/noop-iosched.c. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2103, 2005-01-04 21:32:56-08:00, penberg@cs.helsinki.fi [PATCH] noop iosched: make code static This patch makes code static in drivers/block/noop-iosched.c and adds __init and __exit for module initialization and cleanup functions. Signed-off-by: Pekka Enberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2102, 2005-01-04 21:32:43-08:00, rddunlap@osdl.org [PATCH] cpumask: range check before using value When setting the 'cpu_isolated_map' mask, check that the user input value is valid (in range 0 .. NR_CPUS - 1). Also fix up kernel-parameters.txt for this parameter. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2101, 2005-01-04 21:32:30-08:00, zwane@holomorphy.com [PATCH] fix alt-sysrq deadlock __handle_sysrq was modified to do a spin_lock_irqsave so we were entering smp_send_stop with interrupts. So reenable interrupts to prevent the possible smp_call_function() deadlock. (It's still deadlocky if the sysrq handler is against called via an interrupt from a different device, but that seems unlikely). Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2100, 2005-01-04 21:32:17-08:00, pmeda@akamai.com [PATCH] Add PR_GET_NAME A while back we added the PR_SET_NAME prctl, but no PR_GET_NAME. I guess we should add this, if only to enable testing of PR_SET_NAME. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2099, 2005-01-04 21:32:05-08:00, rddunlap@osdl.org [PATCH] panic_timeout: move to kernel.h Move 'panic_timeout' to linux/kernel.h. ipmi_watchdog.c wanted to know why panic_timeout isn't in some header file. However, ipmi_watchdog.c doesn't even use it, so that reference was deleted. Other references now use kernel.h instead of straight extern int. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2098, 2005-01-04 21:31:50-08:00, Matt_Domsch@dell.com [PATCH] EDD: add edd=off and edd=skipmbr options EDD: add edd=off and edd=skipmbr command line options New command line options edd=off (or edd=of) edd=skipmbr (or edd=sk) runtime options for disabling all EDD int13 calls completely, or for skipping the int13 READ SECTOR calls, respectively. These are provided to allow Linux distributions to include CONFIG_EDD=m, yet allow end-users to disable parts of EDD which may not work well with their system's BIOS. I incorporated comments from Randy Dunlap, and got an ack from Andi Kleen. Signed-off-by: Matt Domsch Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2097, 2005-01-04 21:31:38-08:00, jamagallon@able.es [PATCH] make gconfig work with gtk-2.4 I need this to make gconfig work under gtk-2.4. Without this, it just coredumps. There is some problem with pixmap creation/usage from XPM in the way it is done in gconf, so I just added some stock icons. It is even prettier..;) Could someone test this still works on gtk-2.0 or 2.2 ? Changes: - change the wiget class 'button' in glade files to something known to glade (GtkToolButton) - use 'stock-id' property for toolbar buttons instead of "stock_pixmap" - change unknown signal "pressed" to "clicked" - remove manual setting of icons in gconf.c Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2096, 2005-01-04 21:31:25-08:00, rusty@rustcorp.com.au [PATCH] sys_sched_setaffinity() on UP should fail for non-zero CPUs. Return EINVAL for invalid sched_setaffinity on UP. I was a little surprised that sys_sched_setaffinity for CPU 1 didn't fail on my UP box. With CONFIG_SMP it would have. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2095, 2005-01-04 21:31:12-08:00, tvrtko.ursulin@sophos.com [PATCH] smb_file_open() retval fix Correctly propagate the return value from smb_open(). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2094, 2005-01-04 21:31:02-08:00, manfred@colorfullife.com [PATCH] rcu: simplify quiescent state detection Based on an initial patch from Oleg Nesterov rcu_data.last_qsctr is not needed. Actually, not even a counter is needed, just a flag that indicates that there was a quiescent state. Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2093, 2005-01-04 21:30:48-08:00, manfred@colorfullife.com [PATCH] rcu: make two internal structs static The patch below makes two needlessly global structs static. Signed-off-by: Adrian Bunk Signed-off-by: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2092, 2005-01-04 21:30:36-08:00, oleg@tv-sign.ru [PATCH] rcu: eliminate rcu_ctrlblk.lock rcu_ctrlblk.lock is used to read the ->cur and ->next_pending atomically in __rcu_process_callbacks(). It can be replaced by a couple of memory barriers. rcu_start_batch: rcp->next_pending = 0; smp_wmb(); rcp->cur++; __rcu_process_callbacks: rdp->batch = rcp->cur + 1; smp_rmb(); if (!rcp->next_pending) rcu_start_batch(rcp, rsp, 1); This way, if __rcu_process_callbacks() sees incremented ->cur value, it must also see that ->next_pending == 0 (or rcu_start_batch() is already in progress on another cpu). Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2091, 2005-01-04 21:30:23-08:00, bunk@stusta.de [PATCH] remove ip2 programs drivers/char/ip2/ contained three programs. Besides shipping programs at this place doesn't sound like a good idea, they didn't even all compile. The patch below removes them. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2090, 2005-01-04 21:30:08-08:00, ak@suse.de [PATCH] Sync in core time granuality with filesystems This patch corrects a problem that was originally added with the nanosecond timestamps in stat patch. The problem is that some file systems don't have enough space in their on disk inode to save nanosecond timestamps, so they truncate the c/a/mtime to seconds when flushing an dirty node. In core the inode would have full jiffies granuality. This can be observed by programs as a timestamp that jumps backwards under specific loads when an inode is flushed and then reloaded from disk. The problem was already known when the original patch went in, but it wasn't deemed important enough at that time. So far there has been only one report of it causing problems. Now Tridge is worried that it will break running Excel over samba4 because Excel seems to do very anal timestamp checking and samba4 will supply 100ns timestamps over the network. This patch solves it by putting the time resolution into the superblock of a fs and always rounding the in core timestamps to that granuality. This also supercedes some previous ext2/3 hacks to flush the inode less often when only the subsecond timestamp changes. I tried to keep the overhead low, in particular it tries to keep divisions out of fast paths as far as possible. The patch is quite big but 99% of it is just relatively straight forward search'n'replace in a lot of fs. Unconverted filesystems will default to a 1ns granuality, but may still show the problem if they continue to use CURRENT_TIME. I converted all in tree fs. One possible future extension of this would be to have two time granualities per superblock - one that specifies the visible resolution, and the other to specify how often timestamps should be flushed to disk, which could be tuned with a mount option per fs (e.g. often m/atimes don't need to be flushed every second). Would be easy to do as an addon if someone is interested. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2089, 2005-01-04 21:29:47-08:00, schwidefsky@de.ibm.com [PATCH] sys_stime needs a compat function I realized that the best way to get the sys_time/sys_stime problem fixed is to make sys_time 64 bit safe by using "time_t *" instead of "int *" and to introduce two proper compat functions compat_sys_time and compat_sys_stime. The prototype change of sys_time is transparent for 32 bit architectures because both "int" and "time_t" are 32 bit. For 64 bit the type change would be wrong but luckily no 64 bit architecture uses sys_time/sys_stime in 64 bit mode. The patch makes the following change: ia64 : Remove sys32_time, use compat_sys_time and add (!!) compat_sys_stime to compat syscall table. mips : Use compat_sys_time/compat_sys_stime in 32 bit syscall table. Add #ifdef magic to compile sys_time/sys_stime and compat_sys_time/compat_sys_stime only if needed. parisc : Remove sys32_time, use compat_sys_time and compat_sys_stime. ppc64 : remove sys32_time, ppc64_sys32_stime and ppc64_sys_stime. Use common compat_sys_time, compat_sys_stime and sys_stime. s390 : Use compat_sys_stime. Add #ifdef magic to compile sys_time/sys_stime and compat_sys_time/compat_sys_stime only if needed. sparc64 : Use compat_sys_time/compat_Sys_stime in 32 bit syscall table. um : Remove um_time and um_stime. Use common functions sys_time and sys_stime. This adds a CAP_SYS_TIME check to UMs stime call. x86_64 : Remove sys32_time. Use compat_sys_time and compat_sys_stime in 32 bit syscall table. The original stime bug is fixed for mips, parisc, s390, sparc64 and x86_64. Can the arch-maintainers please take a look at this? From: Martin Schwidefsky Convert compat_time_t to time_t in 32 bit emulation for sys_stime and consolidate all the different implementation of sys_time, sys_stime and their 32-bit emulation parts. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2088, 2005-01-04 21:29:33-08:00, bunk@stusta.de [PATCH] compile with -ffreestanding For the kernel, it would be logical to use -ffreestanding. The kernel is not a hosted environment with a standard C library. The gcc option -ffreestanding is supported by both gcc 2.95 and 3.4, which covers the whole range of currently supported compilers. Regarding changes caused by this patch: Andi Kleen reported: Newer gcc rewrites sprintf(buf,"%s",str) to strcpy(buf,str) transparently. This is only true with unit-at-a-time (disabled on i386 but enabled on x86_64). The Linux kernel doesn't offer a standard C library, and such transparent replacements of kernel functions with builtins are quite fragile. Even with -ffreestanding, it's still possilble to explicitely use a gcc builtin if desired. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2087, 2005-01-04 21:29:20-08:00, alexn@dsv.su.se [PATCH] Off by one in drivers/parport/probe.c This fixes a theoretical bug indicated in: http://bugme.osdl.org/show_bug.cgi?id=240 It prevents overflow in case the required buffer is larger than the passed buffer. This I found to be the minimally intrusive change. Signed-off-by: Alexander Nyberg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2086, 2005-01-04 21:29:07-08:00, alex@clusterfs.com [PATCH] ext3: support for EA in inode 1) intent of the patch is to get possibility to store EAs in the body of large inode. it saves space and improves performance in some cases 2) the patch is quite simple: it works the same way original xattr does, but using other storage (inode body). body has priority over separate block. original routines (ext3_xattr_get, ext3_xattr_list, ext3_xattr_set) are renamed to ext3_xattr_block_*. new routines that handle inode storate are added (ext3_xattr_ibody_get, ext3_xattr_ibody_list, ext3_xattr_ibody_set). routines ext3_xattr_get, ext3_xattr_list and ext3_xattr_set allow user to accesss both the storages transparently 3) the change makes sense on filesystem with inode size >= 256 bytes only. 2.4 kernels don't support such a filesystems, AFAIK. 2.6 kernels do support and ignore EAs stored in a body w/o the patch 4) debugfs and e2fsck need to be patched to deal with EAs in inode the patch will be sent later 5) testing results: a) Andrew Samba Master (tridge) has done successful tests b) we've been using ea-in-inode feature in Lustre for many months Signed-off-by: Andreas Dilger Signed-off-by: Alex Tomas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2085, 2005-01-04 21:28:54-08:00, akpm@osdl.org [PATCH] Reduce i_sem usage during file sync operations We hold i_sem during the various sync() operations to prevent livelocks: if another thread is dirtying the file, a sync() may never return. Or at least, that used to be true when we were using the per-address_space page lists. Since writeback has used radix tree traversal it is not possible to livelock the sync() operations, because they only visit each page a single time. sync_page_range() (used by O_SYNC writes) has not been holding i_sem for quite some time, for the above reasons. The patch converts fsync(), fdatasync() and msync() to also not hold i_sem during the radix-tree-based writeback. Now, we _do_ still need to hold i_sem across the file->f_op->fsync() call, because that is still based on a list_head walk, and is still livelockable. But in the case of msync() I deliberately left i_sem untaken. This is because we're currently deadlockable in msync, because mmap_sem is already held, and mmap_sem nexts inside i_sem, due to direct-io.c. And yes, the ranking of down_read() veruss down() does matter: Task A Task B Task C down_read(rwsem) down(sem) down_write(rwsem) down(sem) down_read(rwsem) C's down_write() will cause B's down_read to block. B holds `sem', so A will never release `rwsem'. So the patch fixes a hard-to-hit triple-task deadlock, but adds a possible livelock in msync(). It is possible to fix sys_msync() so that it takes i_sem outside i_mmap_sem. Later. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2084, 2005-01-04 21:28:41-08:00, akpm@osdl.org [PATCH] suppress might_sleep() if oopsing We can call might_sleep() functions on the oops handling path (under do_exit). There seem little point in emitting spurious might_sleep() warnings into the logs after the kernel has oopsed. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2083, 2005-01-04 21:28:28-08:00, pmeda@akamai.com [PATCH] fork: total_forks not counted under tasklist_lock Bring the total_forks under tasklist_lock. When most of the fork code icluding nr_threads is moved to copy_process() from do_fork() code in 2.6, this is left out. Althought accuracy of total_forks is not important, it would be nice to add this. It does not involve additional cost, and the code will be cleaner if it is grouped with nr_threads. The difference is, total_forks will increase on fork, but nr_threads will increase on fork and decrease on the exit. I also moved extern decleration to sched.h from proc_misc.c. Signed-off-by: Prasanna Meda Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2082, 2005-01-04 21:28:15-08:00, shaohua.li@intel.com [PATCH] time runx too fast after S3 After resume from S3, 'date' shows time run too fast. Signed-off-by: Li Shaohua Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2081, 2005-01-04 21:28:02-08:00, colpatch@us.ibm.com [PATCH] cpumask_t initializers In the course of another patch I've been working on, I stumbled across some weirdness with some of the SD_*_INIT sched_domains initializers. A day or so of digging narrowed it down to the CPU_MASK_NONE initializer nested inside the sched_domain initializers. The errors I got were: kernel/sched.c:4812: error: initializer element is not constant kernel/sched.c:4812: error: (near initialization for `sched_domain_dummy') kernel/sched.c:4812: error: initializer element is not constant which was this line: static struct sched_domain sched_domain_dummy = SD_CPU_INIT; Janis Johnson, a GCC hacker, told me the following: ChangeSet@1.2080, 2005-01-04 21:27:49-08:00, sct@redhat.com [PATCH] ext3: handle attempted double-delete of metadata. This patch improves ext3's ability to deal with corruption on-disk. If we try to delete a metadata block twice, we confuse ext3's internal revoke error-checking, resulting in a BUG(). But this can occur in practice due to a corrupt indirect block, so we should attempt to fail gracefully. Downgrade the assert failure to a JH_EXPECT_BH failure, and return EIO when it occurs. This is easily reproduced with a sample ext3 fs image containing an inode which references the same indirect block more than once. Deleting that inode will BUG() an unfixed kernel with: Assertion failure in journal_revoke() at fs/jbd/revoke.c:379: "!buffer_revoked(bh)" With the fix, ext3 recovers gracefully. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2079, 2005-01-04 21:27:36-08:00, sct@redhat.com [PATCH] ext3: handle attempted delete of bitmap blocks. This patch improves ext3's ability to deal with corruption on-disk. If we ever get a corrupt inode or indirect block, then an attempt to delete it can end up trying to remove any block on the fs, including bitmap blocks. This can cause ext3 to assert-fail as we end up trying to do an ext3_forget on a buffer with b_committed_data set. The fix is to downgrade this to an IO error and journal abort, so that we take the filesystem readonly but don't bring down the whole kernel. Make J_EXPECT_JH() return a value so it can be easily tested and yet still retained as an assert failure if we build ext3 with full internal debugging enabled. Make journal_forget() return an error code so that in this case the error can be passed up to the caller. This is easily reproduced with a sample ext3 fs image containing an inode whose direct and indirect blocks refer to a block bitmap block. Allocating new blocks and then deleting that inode will BUG() with: Assertion failure in journal_forget() at fs/jbd/transaction.c:1228: "!jh->b_committed_data" With the fix, ext3 recovers gracefully. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2078, 2005-01-04 21:27:23-08:00, sct@redhat.com [PATCH] ext3: cleanup handling of aborted transactions. This patch improves ext3's error logging when we encounter an on-disk corruption. Previously, a transaction (such as a truncate) which encountered many corruptions (eg. a single highly-corrupt indirect block) would emit copious "aborting transaction" errors to the log. Even worse, encountering an aborted journal can count as such an error, leading to a flood of spurious "aborting transaction: Journal has aborted" errors. With the fix, only emit that message on the first error. The patch also restores a missing \n in that printk path. Signed-off-by: Stephen Tweedie Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2077, 2005-01-04 21:27:10-08:00, bunk@stusta.de [PATCH] kill blk.h All blk.h users were converted in 2.5, and at the same time blk.h began giving a warning. The patch below removes this obsolete file. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2076, 2005-01-04 21:26:58-08:00, minyard@acm.org [PATCH] Cleanups for the IPMI driver This patch removes some unneeded cruft that Adrian found, and also turns off the shutdown of the timer when removing the module. Since the timer is shutdown when the driver is closed (unless no way out is specified) this is unnecessary and defeats the no way out option. - remove some completely unused code - make some needlessly global code static - removal of some EXPORT_SYMBOL'ed code with zero users. - Removal of the timer shutdown on module removal Signed-off-by: Adrian Bunk Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2075, 2005-01-04 21:26:45-08:00, holt@sgi.com [PATCH] Hold BKL for shorter period in generic_shutdown_super(). Testing revealed long pauses of the entire system while autofs initiated umounts as a result of timing out the mounts. It was noticed that during a umount, the BKL is held while scanning the inode_list and removing and inodes that are candidates. This patch moves locking until after the first pass had gone through the inode_list. Testing revelead that on an ia64 machine with a filesystem that had 8.4 Million inodes, there were no observable pauses during the umount. This was down from over 4 seconds without this patch. Signed-Off-By: Robin Holt Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2074, 2005-01-04 21:26:32-08:00, hch@lst.de [PATCH] remove unused irq_cpustat fields The only common field in irq_cpustat is __softirq_pending, i386 and ppc have some of their own. Remove all unused obsolete fields from various architectures. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2073, 2005-01-04 21:26:18-08:00, hch@lst.de [PATCH] move irq_enter and irq_exit to common code This code is the same for all architectures with the following invariants: - arm gurantees irqs are disabled when calling irq_exit so it can call __do_softirq directly instead of do_softirq - arm26 is totally broken for about half a year, I didn't care for it - some architectures use softirq_pending(smp_processor_id()) instead of local_softirq_pending, but they always evaluate to the same This patch moves the out of line irq_exit implementation from kernel/irq/handle.c which depends on CONFIG_GENERIC_HARDIRQS to kernel/softirq.c which is always compiled, tweaks it for the arm special case and moves the irq_enter/irq_exit/nmi_enter/nmi_exit bits from asm-*/hardirq.h to linux/hardirq.h Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2072, 2005-01-04 21:26:05-08:00, rddunlap@osdl.org [PATCH] handle quoted module parameters Fix module parameter quote handling. Module parameter strings (with spaces) are quoted like so: "modprm=this test" and not like this: modprm="this test" Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2071, 2005-01-04 21:25:52-08:00, dev@sw.ru [PATCH] 4/4GB: Incorrect bound check in do_getname() This patch fixes incorrect address range check in do_getname(). Theoretically this can lead to do_getname() failure on kernel address space string on the TASK_SIZE boundary addresses when 4GB split is ON. (akpm: I don't see why this check exists at all, actually. afaict the only effect of removing it is that we'll then generate -EFAULT on a non-null-terminated pathname which ends exactly at TASK_SIZE). Signed-Off-By: Kirill Korotaev Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2070, 2005-01-04 21:25:39-08:00, jlan@engr.sgi.com [PATCH] enhanced Memory accounting data collection This patch is to offer common accounting data collection method at memory usage for various accounting packages including BSD accounting, ELSA, CSA and any other acct packages that use a common layer of data collection. New struct fields are added to mm_struct to save high watermarks of rss usage as well as virtual memory usage. New struct fields are added to task_struct to collect accumulated rss usage and vm usages. These data are collected on per process basis. Signed-off-by: Jay Lan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2069, 2005-01-04 21:25:25-08:00, jlan@engr.sgi.com [PATCH] enhanced I/O accounting data patch This patch is to offer common accounting data collection method at I/O for various accounting packages including BSD accounting, ELSA, CSA and any other acct packages that use a common layer of data collection. Patch is made to fs/read_write.c to collect per process data on character read/written in bytes and number of read/write syscalls made. New struct fields are added to task_struct to store the data. These data are collected on per process basis. Signed-off-by: Jay Lan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2068, 2005-01-04 21:25:12-08:00, dhowells@redhat.com [PATCH] Cross-reference nommu VMAs with mappings The attached patch includes prio-tree support and adds cross-referencing of VMAs with address spaces back in, as is done under normal MMU Linux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2067, 2005-01-04 21:24:59-08:00, dhowells@redhat.com [PATCH] Permit nommu MAP_SHARED of memory backed files The attached patch applies some further fixes and extensions to the nommu mmap implementation: (1) /proc/maps distinguishes shareable private mappings and real shared mappings by marking the former with 's' and the latter with 'S'. (2) Rearrange and optimise the checking portion of do_mmap_pgoff() to make it easier to follow. (3) Only set VM_SHARED on MAP_SHARED mappings. Its presence indicates that the backing memory is supplied by the underlying file or chardev. VM_MAYSHARE indicates that a VMA may be shared if it's a private VMA. The memory for a private VMA is allocated by do_mmap_pgoff() from a kmalloc slab and then the file contents are read into it before returning. (4) Permit MAP_SHARED + PROT_WRITE on memory-backed files[*] and chardevs to indicate a contiguous area of memory when its get_unmapped_area() is called if the backing fs/chardev is willing. [*] file->f_mapping->backing_dev_info->memory_backed == 1 (5) Require chardevs and files that support to provide a get_unmapped_area() file operation. (6) Made sure a private mapping of /dev/zero is possible. Shared mappings of /dev/zero are not currently supported because this'd need greater interaction of mmap with the chardev driver than is currently supported. (7) Add in some extra checks from mm/mmap.c: security, file having write access for a writable shared mapping, file not being in append mode. (8) Only account the mapping memory if it's allocated here; memory belonging to a shared chardev or file is not accounted. With this patch it should be possible to map contiguous flash files directly out of ROM simply by providing get_unmapped_area() for a read-only/shared mapping. I think that it might be worth splitting do_mmap_pgoff() up into smaller subfunctions: one to handle the checking, one to handle shared mappings and one to handle private mappings. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2066, 2005-01-04 21:24:46-08:00, dhowells@redhat.com [PATCH] Fix nommu MAP_SHARED handling The attached patch does the following things: (1) It uniquifies permitted overlapping VMAs (eg: MAP_SHARED on chardevs) in nommu_vma_tree. Identical entries break the assumptions on which rbtrees work. Since we don't need to share VMAs in this case, we uniquify such VMAs by using the pointer to the VMA. They're only kept in the tree for /proc/maps visibility. (2) Extracts VMA unlinking into its own function so that the source is adjacent to the VMA linking function. (3) No longer releases memory belonging to a shared chardev or file (the underlying driver is expected to provide mappable memory). (4) Frees the file attached to a VMA whether or not that VMA is shared or is a memory-mapped I/O mapping. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2065, 2005-01-04 21:24:34-08:00, dhowells@redhat.com [PATCH] Implement nommu find_vma() The attached patch implements a nommu version of find_vma(). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2064, 2005-01-04 21:24:21-08:00, dhowells@redhat.com [PATCH] FRV: Change PML4 -> PUD The attached patch changes the PML4 bits of the FRV arch to the new PUD way. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2063, 2005-01-04 21:24:08-08:00, dhowells@redhat.com [PATCH] FRV: FR55x CPU support fixes The attached patch fixes the following issues with support for the FR55x CPUs: (1) The FR555 has a 64-byte cacheline size; everything else that we've come across has a 32-byte cacheline size. (2) Fix machine_restart() for FR55x. (3) Fix frv_cpu_suspend() for FR55x. Signed-Off-By: David Howells Signed-off-by: Mark Salter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2062, 2005-01-04 21:23:55-08:00, dhowells@redhat.com [PATCH] FRV: pagetable handling fixes The attached patch makes the following fixes to the frv arch: (1) pte_offset() should no longer be around; the fault handler should use pte_offset_kernel() instead when fixing up vmalloc misses. (2) The PGEs/PMEs do not hold PTEs. They have greater address resolution and fewer control bits. (3) The data access error pattern in ESR15.EC should be 10000 not 10100. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2061, 2005-01-04 21:23:40-08:00, dhowells@redhat.com [PATCH] frv: accidental TLB entry write-protect fix The attached patch stops the FRV kernel-instruction-TLB-miss handler from setting the write-protect bit on a mapping entry when punting an entry from the mapping fast cache registers (DAMR1/IAMR1) to the TLB. This patch derives the WP value from the DAMPR1 register (which actually has a WP bit) rather than the IAMPR1 register (which does not). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2060, 2005-01-04 21:23:27-08:00, dhowells@redhat.com [PATCH] frv: update the trap tables comment The attached patch updates the FRV trap tables comment to make it more appropriate. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2059, 2005-01-04 21:23:15-08:00, dhowells@redhat.com [PATCH] frv: perfctr_info syscall The attached patch gets rid of the perfctr_info syscall from the FRV arch now that its implementation has gone and it has been removed from the i386 arch and the i386 syscalls have been renumbered. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2058, 2005-01-04 21:23:02-08:00, dhowells@redhat.com [PATCH] frv: Minix & ext2 bitops fixes The attached patch does two things: (1) Implements the ext2/ext3 bitops in terms of the main bitops functions. (2) Changes the Minix bitops to use the ext2 bitops (LE) rather than the main bitops (BE). Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2057, 2005-01-04 21:22:49-08:00, dhowells@redhat.com [PATCH] FRV: debugging fixes The attached patch fixes three debugging problems in the frv arch: (1) Single-stepping in userspace steps through into the kernel-mode interrupt handler when a hardware interrupt happens, and sometimes it gets past where the debug-mode handler would normally catch it. This patch extends the range of detected PC values. (2) When setting up the kernel-mode exception frame from the debug-mode handler for a userspace debugging event, we weren't setting the LR register to generate a return to the exception handler epilogue. (3) sys_ptrace() now needs to "put" the inferior task_struct not "free" it as was done in 2.4. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2056, 2005-01-04 21:22:36-08:00, dhowells@redhat.com [PATCH] Make more syscalls available for the FR-V arch The attached patch makes more syscalls available for the FR-V arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2055, 2005-01-04 21:22:23-08:00, dhowells@redhat.com [PATCH] frv: nommu changes The attached patch changes the nommu bits of the FRV arch to incorporate the name changes made to the nommu core stuff. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2054, 2005-01-04 21:22:10-08:00, dhowells@redhat.com [PATCH] Further nommu /proc changes The attached patch changes the nommu procfs routines to match the nommu changes in patch 1/1. This is an exercise in structure renaming and handling the fact that the list of VMAs in the system is now held together by vma->vm_rb. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2053, 2005-01-04 21:21:58-08:00, dhowells@redhat.com [PATCH] Further nommu changes The attached patch further changes the nommu stuff previously changed. These new changes do the following: (0) Some additional variables have been defined to make nommu even compile. (1) Get rid of the alternate vm_area_struct. The nommu mmap now uses the normal one. There's a refcount field added to the normal one, contingent on !CONFIG_MMU. (2) vm_rb is now used to keep track of the VMAs in an rbtree rather than adding a separate list. (3) mm_tblock_struct is now vm_list_struct. (4) put_vma() now calls vma->vm_ops->close() if available on nommu. (5) A dummy generic_file_vm_ops has been provided. It does nothing, but permits tiny-shmem to compile. tiny-shmem and ramfs still need attention, such that files contained therein can be mmapped shared-writably to some extent on nommu. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2052, 2005-01-04 21:21:45-08:00, dhowells@redhat.com [PATCH] Fix some ELF-FDPIC binfmt problems The attached patch fixes the following problems in the ELF-FDPIC binfmt driver: (1) elf_fdpic_map_file() should be passed an mm_struct pointer, not NULL. (2) do_mmap() should be called with the mmap_sem held. (3) mm_struct::end_brk doesn't exist in 2.6 (debugging only). (4) Avoid debugging warnings by casting certain values to unsigned long before printing them. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2051, 2005-01-04 21:21:32-08:00, dhowells@redhat.com [PATCH] FRV: Add FDPIC ELF binary format driver The attached patch adds a new binary format driver that allows a special variety of ELF to be used that permits the dynamic sections that comprise an executable, its dynamic loader and its shared libaries and its stack and data to be located anywhere within the address space. This is used to provide shared libraries and shared executables (at least, as far as the read-only dynamic sections go) on uClinux. Not only that, but the same binaries can be run on MMU linux without a problem. This is achieved by: (1) Passing loadmaps to the dynamic loader (or to a statically linked executable) to indicate the whereabouts of the various dynamic sections. (2) Using a GOT inside the program. (3) Passing setup_arg_pages() the stack pointer to be. (4) Allowing the arch greated control over how an executable is laid out in memory in MMU Linux. (5) Rewriting mm/nommu.c to support MAP_PRIVATE on files, thus allowing _mmap_ to handle sharing of private-readonly mappings. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2050, 2005-01-04 21:21:18-08:00, dhowells@redhat.com [PATCH] Fix usage of setup_arg_pages() in IA64, MIPS, S390 and Sparc64 The attached patch fixes the usage of setup_arg_pages() in the IA64, MIPS, S390 and Sparc64 arches. This function now takes an extra parameter: the initial top of stack. This is useful in uClinux when there's no fixed location to which the stack pointer can be initialised. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2049, 2005-01-04 21:21:04-08:00, dhowells@redhat.com [PATCH] FRV: change setup_arg_pages() to take stack pointer The attached patch changes setup_arg_pages() to take the proposed initial stack top for the new executable image. This makes it easier for the binfmt to place the stack at a non-fixed location, such as happens in !MMU configurations. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2048, 2005-01-04 21:20:51-08:00, dhowells@redhat.com [PATCH] FRV: procfs changes for nommu changes The attached patch splits some memory-related procfs files into MMU and !MMU versions and places them in separate conditionally-compiled files. A header file local to the fs/proc/ directory is used to declare functions and the like. Additionally, a !MMU-only proc file (/proc/maps) is provided so that master VMA list in a uClinux kernel is viewable. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2047, 2005-01-04 21:20:39-08:00, dhowells@redhat.com [PATCH] FRV: Better mmap support in uClinux The attached patch changes mm/nommu.c to better support mmap() when MMU support is disabled (as it is in uClinux). This was discussed on the uclibc mailing list in a thread revolving around the following message: Date: Thu, 1 Apr 2004 12:05:50 +1000 From: David McCullough To: David Howells Cc: Alexandre Oliva , uclibc@uclibc.org Subject: Re: [uClibc] mmaps for malloc should be private Message-ID: <20040401020550.GG3150@beast> The revised rules are: (1) Anonymous mappings can be shared or private, read or write. (2) Chardevs can be mapped shared, provided they supply a get_unmapped_area() file operation and use that to set the address of the mapping (as a frame buffer driver might do, for instance). (3) Files (and blockdevs) cannot be mapped shared since it is not really possible to honour this by writing any changes back to the backing device. (4) Files (or sections thereof) can be mapped read-only private, in which case the mapped bit will be read into memory and shared, and its address will be returned. Any excess beyond EOF will be cleared. (5) Files (or sections thereof) can be mapped writable private, in which case a private copy of the mapped bit will be read into a new bit memory, and its address will be returned. Any excess beyond EOF will be cleared. Mappings are per MM structure still. You can only unmap what you've mapped. Fork semantics are irrelevant, since there's no fork. A global list of VMA's is maintained to keep track of the bits of memory currently mapped on the system. The new binfmt makes use of (4) to implement shared libraries. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2046, 2005-01-04 21:20:24-08:00, dhowells@redhat.com [PATCH] FRV: Make calibrate_delay() optional The attached patch makes calibrate_delay() optional. In this architecture, it's a waste of time since we can predict exactly what it's going to come up with just by looking at the CPU's hardware clock registers. Thus far, we haven't seen a board with any clock not dependent on the CPU's clock. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2045, 2005-01-04 21:20:09-08:00, dhowells@redhat.com [PATCH] FRV: Remaining Fujitsu FR-V arch include files The attached patch provides the remaining arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2044, 2005-01-04 21:19:55-08:00, dhowells@redhat.com [PATCH] FRV: Yet more Fujitsu FR-V arch include files The attached patch provides the third 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2043, 2005-01-04 21:19:42-08:00, wli@holomorphy.com [PATCH] convert FRV to use remap_pfn_range This patch converts FRV to use remap_pfn_range() in its io_remap_page_range() function. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2042, 2005-01-04 21:19:30-08:00, dhowells@redhat.com [PATCH] FRV: More Fujitsu FR-V arch include files The attached patch provides the second 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2041, 2005-01-04 21:19:15-08:00, dhowells@redhat.com [PATCH] frv: Fix PCI config space write The attached patch makes byte and word writes to PCI config space work. The problem was that the pointer to the appropriate chunk of the config port needs to be juggled to allow for the fact that FRV is big endian in this case. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2040, 2005-01-04 21:19:03-08:00, dhowells@redhat.com [PATCH] frv: PCI DMA fixes The attached patch makes cache flushing work correctly on DMA consistent memory for the frv arch. On the FRV unmapped memory can't be flushed directly, but has to be kmapped first since the flush instructions take virtual pointers not physical ones. It also splits the MMU and !MMU versions into separate files. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2039, 2005-01-04 21:18:48-08:00, dhowells@redhat.com [PATCH] frv: emove obsolete hardirq stuff from includes The attached patch removes irq_enter() and friends from asm-frv/hardirq.h as they are now mandatorily defined in linux/hardirq.h. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2038, 2005-01-04 21:18:35-08:00, dhowells@redhat.com [PATCH] FRV: First batch of Fujitsu FR-V arch include files The attached patch provides the first 100KB or so of the arch-specific include files for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2037, 2005-01-04 21:18:21-08:00, haveblue@us.ibm.com [PATCH] kill off highmem_start_page People love to do comparisons with highmem_start_page. However, where CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at *highmem_start_page. That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and catches the bogus address tranlations. There are about a gillion different ways to find out of a 'struct page' is highmem or not. Why not just check page_flags? Just use PageHighMem() wherever there used to be a highmem_start_page comparison. Then, kill off highmem_start_page. This removes more code than it adds, and gets rid of some nasty #ifdefs in .c files. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2036, 2005-01-04 21:18:08-08:00, dhowells@redhat.com [PATCH] Put memory in DMA zone not Normal zone in FRV arch The attached patch makes the FR-V arch put all its memory in the DMA zone rather than the Normal zone since all the memory is available as a DMA target. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2035, 2005-01-04 21:17:55-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 9 The attached patches provides part 9 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2034, 2005-01-04 21:17:41-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 8 The attached patches provides part 8 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2033, 2005-01-04 21:17:28-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 7 The attached patches provides part 7 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2032, 2005-01-04 21:17:14-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 6 The attached patches provides part 6 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2031, 2005-01-04 21:17:01-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 5 The attached patches provides part 5 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2030, 2005-01-04 21:16:47-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 4 The attached patches provides part 4 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2029, 2005-01-04 21:16:34-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 3 The attached patches provides part 3 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2028, 2005-01-04 21:16:20-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 2 The attached patches provides part 2 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2027, 2005-01-04 21:16:06-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch implementation part 1 The attached patches provides part 1 of an architecture implementation for the Fujitsu FR-V CPU series, configurably as Linux or uClinux. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2026, 2005-01-04 21:15:53-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V arch documentation The attached patch provides the arch-specific documentation for the Fujitsu FR-V CPU arch. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2025, 2005-01-04 21:15:39-08:00, dhowells@redhat.com [PATCH] FRV: Fujitsu FR-V CPU arch maintainer record The attached patch supplies the maintainer record for an architecture implementation for the Fujistu FR-V CPU series. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2024, 2005-01-04 21:15:26-08:00, dhowells@redhat.com [PATCH] VM routine fixes The attached patch fixes a number of problems in the VM routines: (1) Some inline funcs don't compile if CONFIG_MMU is not set. (2) swapper_pml4 needn't exist if CONFIG_MMU is not set. (3) __free_pages_ok() doesn't counter set_page_refs() different behaviour if CONFIG_MMU is not set. (4) swsusp.c invokes TLB flushing functions without including the header file that declares them. CONFIG_SHMEM semantics: - If MMU: Always enabled if !EMBEDDED - If MMU && EMBEDDED: configurable - If !MMU: disabled Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2023, 2005-01-04 21:15:13-08:00, dhowells@redhat.com [PATCH] frv: add initdata variable spec in a header file The attached patch marks a variable as __initdata in a header file so that the FRV gcc generates the correct access method as initdata variables are too far from the GPREL pointer to access directly. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2022, 2005-01-04 21:15:00-08:00, dhowells@redhat.com [PATCH] GP-REL data support The attached patch makes it possible to support gp-rel addressing for small variables. Since the FR-V cpu's have fixed-length instructions and plenty of general-purpose registers, one register is nominated as a base for the small data area. This makes it possible to use single-insn accesses to access global and static variables instead of having to use multiple instructions. This, however, causes problems with small variables used to pinpoint the beginning and end of sections. The compiler assumes it can use gp-rel addressing for these, but the linker then complains because the displacement is out of range. By declaring certain variables as arrays or by forcing them into named sections, the compiler is persuaded to access them as if they can be outside the displacement range. Declaring the variables as "const void" type also works. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2021, 2005-01-04 21:14:46-08:00, dhowells@redhat.com [PATCH] out-of-line implementation of find_next_bit() The attached patch provides an out-of-line implementation of find_next_bit() and rearranges linux/bitops.h to avoid a dependency loop between inline functions in there and in asm/bitops.h trying to include one another. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2020, 2005-01-04 21:14:32-08:00, sfr@canb.auug.org.au [PATCH] ppc64: tidy up the htab_data structure More tidying up. The htab_data structure contained 5 fields or which two were completely unused and one other was just kept for printing at boot time. I have mode the remaining two into global variables. Built and booted on iSeries (which is always lpar) and on pSeries without partitioning. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2019, 2005-01-04 21:14:19-08:00, sfr@canb.auug.org.au [PATCH] ppc64: use c99 initializers This patch is just more clean up in the ppc64 arch. It uses c99 initializers for various iSeries structures that are used to pass information to the hypervisor. Also itLpNaca is not used by any code that could be in a module, so don't export it. Built and booted. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2018, 2005-01-04 21:14:06-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove StudlyCaps from lppaca structure This patch just renames all the fields (and the structure name) of the lppaca structure to rid us of some more StudyCaps. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2017, 2005-01-04 21:13:53-08:00, sfr@canb.auug.org.au [PATCH] ppc64: move the lppaca defining header file This patch just renames asm/iSeries/ItLpPaca.h to asm/lppaca.h as the lppaca structure is no longer just legacy iSeries specific. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2016, 2005-01-04 21:13:18-08:00, sfr@canb.auug.org.au [PATCH] ppc64: use xPMCRegsInUse This fixes an aweful piece of code that could have just referenced xPMCRegsInUse in the lppaca structure. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2015, 2005-01-04 21:13:07-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the naca from all but iSeries This patch finally removes the naca from all architectures except legacy iSeries and in the process makes it a structure instead of a pointer. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2014, 2005-01-04 21:12:54-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove debug_switch from the naca The patch moves the debug_switch from the naca to a global variable. Also, a couple of trivial naming tidy ups. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2013, 2005-01-04 21:12:41-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove serialPortAddr from the naca The serialPortAddr field of the naca was only being used locally, remove it. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2012, 2005-01-04 21:12:28-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the paca pointer form the naca The only place that was using the paca pointer that was in the naca was some assembler that used it to find a parameter to pass to some C code. That C code did not even declare that parameter! Remove the paca pointer. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2011, 2005-01-04 21:12:14-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove /proc/ppc64/{naca,paca/xx} This patch removes the (unused) /proc entries for the naca and the (per cpu) pacas. Also it removes a lot of no longer necessary includes of . Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2010, 2005-01-04 21:12:02-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove interrupt_controller from naca This patch just moves the interrupt_controller field of the naca into a global variable. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2009, 2005-01-04 21:11:49-08:00, sfr@canb.auug.org.au [PATCH] ppc64: remove the page table size from the naca This patch just removes the page table size field from the naca (and makes it ppc64_pft_size instead). Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2008, 2005-01-04 21:11:36-08:00, sfr@canb.auug.org.au [PATCH] ppc64: consolidate cache sizing variables This patch consolidates the variables that define the PPC64 cache sizes into a single structure (the were in the naca and the systemcfg structures). Those that were in the systemcfg structure are left there just because they are exported to user mode through /proc. Signed-off-by: Stephen Rothwell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2007, 2005-01-04 21:11:24-08:00, paulus@samba.org [PATCH] ppc64: simplify timer_interrupt This patch is from Milton Miller . When the update_process_times call was moved out of do_timer for the UP case, the replicator didn't track down the hiding and just added ifndef SMP. This removes the ifdefs and the indirection of calling another file for one function in a third file. Signed-off-by: Milton Miller Signed-off-by: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2006, 2005-01-04 21:11:12-08:00, anton@samba.org [PATCH] ppc64: remove stale prom.h code Remove some stale code in prom.h Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2005, 2005-01-04 21:10:59-08:00, anton@samba.org [PATCH] ppc64: fix some compiler warnings Fix some compiler warnings: - The first two are spurious gcc warnings, but quieten them up regardless - Add a missing include - Use register_sysrq_key instead of __sysrq_put_key_op Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2004, 2005-01-04 21:10:46-08:00, anton@samba.org [PATCH] ppc64: Clarify rtasd printk On machines with RTAS but without event-scan support we would incorrectly claim there was no RTAS on the system. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2003, 2005-01-04 21:10:33-08:00, anton@samba.org [PATCH] ppc64: catch bad xmon read/write SPR commands Protect the read/write SPR xmon commands. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2002, 2005-01-04 21:10:19-08:00, anton@samba.org [PATCH] ppc64: limit xmon dump length A number of people (myself included) have pasted bad input into xmon that it parsed as a request to dump gigabytes of memory. Place a limit of 128kB on the dump commands. Also remove a stale function prototype thats been lying around. Signed-off-by: Anton Blanchard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2001, 2005-01-04 21:10:06-08:00, serue@us.ibm.com [PATCH] capset returns -EPERM when pid==current->pid In the current kernel/capability.c:sys_capset() code, permission is denied if CAP_SETPCAP is not held and pid is positive. pid=0 means use the current process, and this is allowed. But using the current process' pid is not allowed. The man page for capsetp simply says that CAP_SETPCAP is required to use this function, and does not mention the exception for pid=0. The current behavior seems inconsistent. The attached patch also allows a process to call capset() on itself. Signed-off-by: Chris Wright Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.2000, 2005-01-04 21:09:53-08:00, serue@us.ibm.com [PATCH] properly split capset_check+capset_set The attached patch removes checks from kernel/capability.c which are redundant with cap_capset_check() code, and moves the capset_check() calls to immediately before the capset_set() calls. This allows capset_check() to accurately check the setter's permission to set caps on the target. Please apply. Signed-off-by: Serge Hallyn Signed-off-by: Chris Wright Signed-off-by: Stephen Smalley Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1999, 2005-01-04 21:09:40-08:00, oleg@tv-sign.ru [PATCH] fix double sync_page_range() in generic_file_aio_write() generic_file_aio_write(): generic_file_aio_write_nolock(): if (SYNC) sync_page_range_nolock(); if (SYNC) sync_page_range(); I think that generic_file_aio_write() should use __generic_file_aio_write_nolock() instead. Signed-off-by: Oleg Nesterov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1998, 2005-01-04 21:09:27-08:00, wli@holomorphy.com [PATCH] fix arch/x86_64/ia32/syscall32.c misdeclared pud variable pud needs to be declared as a pud_t in order to avoid an assignment from incompatible pointer type warning or two; this patch makes it so. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1997, 2005-01-04 21:09:14-08:00, heiko.carstens@de.ibm.com [PATCH] s390: fix pgd_index() compile warnings the patch below fixes a few compile warnings due to missing parenthesizes. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1996, 2005-01-04 20:15:26-08:00, rusty@rustcorp.com.au [PATCH] More ECN Fixes: make writable before writing Patrick McHardy spotted this, on top of previous fix. I neatened it. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1995, 2005-01-04 20:15:13-08:00, rusty@rustcorp.com.au [PATCH] ftp nonlinear packet fix FTP connection tracking assumes it can just dereference tcphdr; not neccessarily true now we don't linearize in ftp conntrack helper or tcp connection tracking. Also found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1994, 2005-01-04 20:15:00-08:00, rusty@rustcorp.com.au [PATCH] Fix for NAT core on nonlinear skbs The nat core calls skb_ip_make_writable() with a length too short. Found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1993, 2005-01-04 20:14:47-08:00, rusty@rustcorp.com.au [PATCH] Fix for UDP and TCP NAT on nonlinear skbs UDP and TCP refer to potentially stale pointers after calling skb_ip_make_writable(), and UDP calls it with the wrong len argument. All found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1992, 2005-01-04 20:14:34-08:00, rusty@rustcorp.com.au [PATCH] Conntrack Hash Allocation using __get_free_pages Here is a patch that just makes it use get_free_pages to test the TLB theory. Another obvious improvement would be to not use list_heads for the hash table buckets - a single pointer would likely suffice and it would cut the hash table in half, saving cache, TLB and memory. Signed-off-by: Linus Torvalds ChangeSet@1.1991, 2005-01-04 20:14:21-08:00, rusty@rustcorp.com.au [PATCH] Multiport revision with port ranges (replaces "mport") The multiport match doesn't support ranges of ports, so a new match called "mport" was written. Now we have versioning of matches and targets, we can simply put this extension in multiport revision 1. Also, removes gratuitous checking in match: we basically trust iptables userspace these days. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Rusty Russell (modified) Signed-off-by: Linus Torvalds ChangeSet@1.1990, 2005-01-04 20:14:08-08:00, rusty@rustcorp.com.au [PATCH] Add bitops to ipt_MARK without breaking compatbility Anders Fugmann wrote a patch to add bitops to ipt_MARK. I made a version based on the revision patch. Bart De Schuymer provided the idea of overriding the target type. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1989, 2005-01-04 20:13:55-08:00, rusty@rustcorp.com.au [PATCH] iptables revision getsockopt This adds a new getsockopt to iptables, which allows userspace to query the revision number of extensions. iptables 1.3.0 (to be released soon) already has support for this. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1988, 2005-01-04 20:13:42-08:00, rusty@rustcorp.com.au [PATCH] Steal a Character To Create a Revision Number Pablo Neira came up with the idea of stealing the last byte in the (already nul-terminated) name of a target/match to create a version. That patch motivated me to clean up the match and target searching in ip_tables, which makes this patch more trivial. I also renamed "version" to "revision" since the word "version" was used for iptables itself. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1987, 2005-01-04 20:13:30-08:00, rusty@rustcorp.com.au [PATCH] Clean up the kmod handling code in iptables.c We now have a convenient kmod macro try_then_request_module(). 1) Split our current "generic" function into separate find_target_lock(), find_table_lock() and find_match_lock() functions explicitly. 2) Have those functions do try_module_get() for us, and fix up the one caller who didn't do that anyway. 3) Have the caller use try_then_request_module(). 4) Remove __ipt_mutex_up() and __ipt_find_target_lock() which weren't used (even in patch-o-matic AFAICT). This cleanup takes us closer to using standard list macros everywhere, and makes the version patch simpler. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1986, 2005-01-04 20:13:17-08:00, rusty@rustcorp.com.au [PATCH] Remove Randomness in Selecting NAT IP Address We currently choose a "random" IP address to NAT to, where we have a range. Martin Josefsson pointed out that he uses the SAME target in iptables because changing IP addresses breaks Internet banking sites (among others) which assume the customer will be coming from a consistent IP address. In fact, we spend a fair bit of effort trying to balance the number of connections we NAT to each IP address. We can come pretty damn close just hashing the source and destination IP addresses, and it has the consistency property which is so desirable, as well as being faster. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1985, 2005-01-04 20:13:04-08:00, rusty@rustcorp.com.au [PATCH] Warn when old code would have done extra mangling Now we no longer do extra mangling, warn in that case. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1984, 2005-01-04 20:12:51-08:00, rusty@rustcorp.com.au [PATCH] Remove do_extra_mangle: double NAT on LOCAL_OUT On NF_IP_LOCAL_OUT, when destination NAT changes the destination interface, we also change the source address, so the packet is the same as if it were generated to go that way in the first place. This is not strictly necessary, I believe. This patch rips that code out to see what breaks. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1983, 2005-01-04 20:12:38-08:00, rusty@rustcorp.com.au [PATCH] Don't try too hard to NAT to unique tuple On NF_IP_LOCAL_OUT or NF_IP_PRE_ROUTING, if destination NAT is not sufficient to create a unique tuple, we try changing the source port as well. However, this is also not strictly necessary: if the tuple is not unique, we will also try to change the source on the NF_IP_POST_ROUTING hook. When we finally confirm the connection, if the tuple is still not unique the packet will be dropped (this is required anyway as we could race: the conntrack is not placed in the hash until the packet is about to leave the box anyway). In fact, we only need best effort *everywhere*. This patch rips that code out to see what breaks. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1982, 2005-01-04 20:12:25-08:00, rusty@rustcorp.com.au [PATCH] ip_conntrack_alter_reply doesn't need to loop ip_conntrack_alter_reply checks that the reply isn't already taken, but there's little point, since there's *still* a race after it is called (which we handle at confirm time anyway). Signed-off-by: Linus Torvalds ChangeSet@1.1981, 2005-01-04 20:12:12-08:00, rusty@rustcorp.com.au [PATCH] Remove NAT to multiple ranges The NAT code has the concept of multiple ranges: you can say "map this connection onto IP 192.168.1.2 - 192.168.1.4, 192.168.1.7 ports 1024-65535, and 192.168.1.10". I implemented this because we could. But it's not actually *used* by many (any?) people, and you can approximate this by a random match (from patch-o-matic) if you really want to. It adds complexity to the code. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1980, 2005-01-04 20:11:59-08:00, rusty@rustcorp.com.au [PATCH] When ipt_ECN needs TCP, check it is not inverted Writing the nfsim testcase for the ECN target revealed a hole in the rule checking: when checking whether the rule specified TCP, you need to check it isn't inverted. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1979, 2005-01-04 20:11:46-08:00, rusty@rustcorp.com.au [PATCH] ipt_REJECT Target nonlinear fixes nfsim now generates non-linear packets: when run under valgrind it finds linear assumptions very nicely. This is the second thing I tried, and it found a real bug. In this case, checking the UDP checksum is correct, but overkill, and like the ICMP header handling, does not handle non-linear packets. Remove UDP checksum, fix ICMP error. Signed-off-by: Rusty Russell Signed-off-by: Linus Torvalds ChangeSet@1.1978, 2005-01-04 15:59:03-08:00, chrisw@osdl.org [PATCH] fix up dummy security module code merge OK, somehow I managed to botch this one. It happens to work fine, but I should have been more careful with forward porting this 1+ year old patch. The exec-time calc should go in bprm_apply_creds, not bprm_free_security. Thanks to Stephen for spotting my mistake. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1977, 2005-01-04 15:57:57-08:00, torvalds@ppc970.osdl.org Merge bk://nfsclient.bkbits.net/linux-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1975.1.2, 2005-01-04 15:57:25-08:00, brugolsky@telemetry-investments.com [PATCH] NFS client O_DIRECT error case fix The NFS direct-io error return path for request sizes greater than MAX_DIRECTIO_SIZE fails to initialize the returned page struct array pointer to NULL. Discovered using AKPM's ext3-tools: odwrite -ko 0 16385 foo Signed-off-by: Bill Rugolsky Signed-off-by: Linus Torvalds ChangeSet@1.1938.479.6, 2005-01-04 22:45:01+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2347/1: PXA SSP PSP bit definition Patch from Liam Girdwood This patch adds a bit definition for the SSP port PSP mode. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1938.479.5, 2005-01-04 22:39:50+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2346/1: Update IXP4xx documentation Patch from Deepak Saxena This patch updates the IXP4xx documentation with information about the latest chipsets and supported devices. Supercedes 2308/1 Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.479.4, 2005-01-04 22:34:56+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2345/1: S3C24XX - serial init depending on cpu detected Patch from Ben Dooks Use the cpu-type detected in arch/arm/mach-s3c2410/cpu.c to work out which uart initialisation routine to call, instead of relying on the one called within mach-xxxx.c. This allows one machine-type to run with either an 2410 or 2440 cpu installed. Thanks to Dimitry Andric for the original patch. Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1938.479.3, 2005-01-04 22:29:29+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2344/1: S3C2440 - fix mapping of watchdog for reboot Patch from Ben Dooks Ensure the watchdog timer is mapped for use with the reboot code. Also fixes minor comment typo. Signed-off-by: Dimitry Andric Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1975, 2005-01-04 14:28:02-08:00, Andries.Brouwer@cwi.nl [PATCH] remove duplicated patch fragment Acked-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1938.479.2, 2005-01-04 22:24:26+00:00, ben-linux@org.rmk.(none) [ARM PATCH] 2343/1: S3C2410 / S3C2440 MAINTAINERS entries Patch from Ben Dooks Mainter entries for ARM/S3C2410 and ARM/S3C2410 ARM Architectures, mainted by Ben Dooks on behalf of Simtec Electronics. Signed-off-by: Ben Dooks Signed-off-by: Russell King ChangeSet@1.1974, 2005-01-04 13:54:13-08:00, chrisw@osdl.org [PATCH] track capabilities in default dummy security module code Switch dummy logic around to set cap_* bits during exec and set*uid based on basic uid check. Then check cap_* bits during capable() (rather than doing basic uid check). This ensures that capability bits are properly initialized in case the capability module is later loaded. Signed-off-by: Chris Wright Signed-off-by: Linus Torvalds ChangeSet@1.1938.479.1, 2005-01-04 20:03:09+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix slab corruption issues triggered with pud_t integration. When the page tables are wrapped from 4 levels to 2 levels, the new MM code requires PMD_SHIFT to match PUD_SHIFT, which must also match PGDIR_SHIFT. If PMD_SHIFT is smaller than PUD_SHIFT, we risk freeing a still-in-use table (== page) which can then get re-used for the slab cache. Testing and inspection shows that there isn't any real benefit from keeping PMD_SHIFT set to 20. In addition, add some comments concerning the granularity of alloc_init_section() and fix a missing PMD assignment in the rebooting code. Somehow we managed to get away with that, although it is actually wrong. Maybe I've just been lucky until now. Signed-off-by: Russell King ChangeSet@1.1971.1.35, 2005-01-04 19:49:09+01:00, trond.myklebust@fys.uio.no RPC: call_verify Don't label all retries as "server seeing garbage". Report correct error for buffer overflows. Fix incorrect buffer overflow test that was masking AUTH_REJECTEDCRED, AUTH_REJECTEDVERF,... errors. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.34, 2005-01-04 19:48:45+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: incorrect "df" results Description: Fix an NFS client bug introduced in 2.6.9-rc1. The "df" command was reporting the size of NFS file systems incorrectly. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.33, 2005-01-04 19:48:17+01:00, trond.myklebust@fys.uio.no NFS: Ensure ACCESS caches are invalidated together with the attribute cache. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.32, 2005-01-04 19:47:52+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: use attribute timeout instead of "noac" mount option The behavior enabled by the "noac" mount option should be precisely equivalent to setting acreg{min,max} or acdir{min,max} to zero via mount options. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.31, 2005-01-04 19:47:24+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct reads and writes need to flush dirty cache pages Other parts of the NFS client invoke nfs_wb_all() when they want to flush dirty cache pages. The direct path needs to do that, too. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.30, 2005-01-04 19:47:00+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Use parallel read operations to do direct read requests The initial implementation of NFS direct reads was entirely synchronous. The direct read logic issued one NFS READ operation at a time, and waited for the server's reply before issuing the next one. For large direct read requests, this is unnecessarily slow. This patch changes the NFS direct read path to dispatch NFS READ operations for a single direct read request in parallel and wait for them once. The direct read path is still synchronous in nature, but because the NFS READ operations are going in parallel, the completion wait should be much shorter. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.29, 2005-01-04 19:46:31+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct read path allocates nfs_read_data on the stack Reduce stack utilization in the NFS direct read path by using a dynamically allocated nfs_read_data structure instead of allocating one on the stack. This reduces stack utilization of nfs_direct_read_seg from over 900 bytes to less than 100 bytes. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.28, 2005-01-04 19:46:04+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Direct write path allocates nfs_write_data on the stack Reduce stack utilization in the NFS direct write path by using a dynamically allocated nfs_write_data structure instead of allocating one on the stack. This reduces stack utilization of nfs_direct_write_seg from over 900 bytes to less than 100 bytes. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.27, 2005-01-04 19:45:37+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: better handling of short writes in direct write path Immediately return control to the application if a short NFS write is detected in the NFS client's direct write path. This is better behavior than what the direct write path does today, which could result in data appearing at the wrong offset in the file. Eventually this code path should retry short writes at least once before giving up. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.26, 2005-01-04 19:45:13+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Use sizeof() instead of C macro Replace a C macro with sizeof(). Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.25, 2005-01-04 19:44:43+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] RPC: display XIDs in host order Description: Ethereal and other tools display RPC XIDs in host order. This patch changes the RPC trace messages that display XIDs to print them in host order so they can be easily matched to XIDs that appear in Ethereal. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.24, 2005-01-04 19:44:19+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: report return code on GETATTR and SETATTR Improve trace debugging messages for NFSv2/3 GETATTR and SETATTR procedures. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.23, 2005-01-04 19:43:50+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: short write warning Recently a patch set was accepted to allow the Linux NFS client to handle short writes by retrying the unwritten portion of the request. The only case that now results in an error is when the server makes no progress; that is, writes zero bytes. This patch changes the kernel log warning that is generated in that case to reflect the error condition more accurately. Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.22, 2005-01-04 19:43:24+01:00, trond.myklebust@fys.uio.no NFS: Fix dentry refcount accounting error which causes unnecessary sillyrenames when renaming to an existing file. Signed-off-by: Greg Banks Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.21, 2005-01-04 19:42:56+01:00, trond.myklebust@fys.uio.no NFS: when we mount with the "nolock" flag we need to use local locking. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.20, 2005-01-04 19:42:30+01:00, trond.myklebust@fys.uio.no VFS: Remove LOCK_USE_CLNT. It should no longer be necessary. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.19, 2005-01-04 19:42:03+01:00, trond.myklebust@fys.uio.no RPC: Optimize away unnecessary del_timer_sync() operations, when we know there are no pending timers. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.18, 2005-01-04 19:41:37+01:00, trond.myklebust@fys.uio.no VFS: Avoid dentry aliasing problems in filesystems like NFS, where inodes may be marked as stale in one instance (causing the dentry to be dropped) then re-enabled in the next instance. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.17, 2005-01-04 19:41:11+01:00, trond.myklebust@fys.uio.no NFSv2/v3/v4: ESTALE should not be a permanent condition on directories. Although it usually means that someone has deleted a file on the server, the ESTALE error may also indicate that the sysadmin has used exportfs to deny our client access to the server. Most NFS implementations therefore consider it a non-permanent condition, and allow inodes to "recover" when the sysadmin re-enables access. If, however, you want to work with broken servers, like unfsd, that reuse filehandles for new files after the original file gets deleted, then "recovery" is impossible, since it may be that the filehandle now points to a different file. Note that this is broken server behaviour that may happen even without us ever seeing the ESTALE error. In order to minimize (but we can never eliminate entirely) this race condition on unfsd servers, Linux has traditionally made ESTALE a permanent condition on all filehandles except the root filehandle. The problem is that if we apply this strict staleness criterion to directories (particularly so for he current directory), then all processes will need to re-walk the path starting from the mount point, in order to recover from the sysadmin intervention case. As this is not usual on other *NIX implementations, and may in any case be undermined by caching rules etc, this is being seen as a usability problem. This patch makes ESTALE a non-permanent condition on directories, but preserves the current behaviour for non-directories. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.16, 2005-01-04 19:40:47+01:00, trond.myklebust@fys.uio.no Subject: [PATCH] NFS: Sync NFS writes still use kmalloc Replace the kmalloc() and kfree() calls in this path with appropriate invocations of nfs_writedata_alloc() and nfs_writedata_free(). This makes nfs_writepage_sync match all the other write paths in fs/nfs/write.c. Category: Maintainability, performance Signed-off-by: Chuck Lever Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.15, 2005-01-04 19:40:18+01:00, trond.myklebust@fys.uio.no RPCSEC_GSS: Miscellaneous cleanup of auth_gss.c: we're passing something as a void * when we know perfectly well what it is. And we're passing some arguments that we don't actually use. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.14, 2005-01-04 19:39:55+01:00, trond.myklebust@fys.uio.no RPC: The RPCAUTH_CRED_DEAD flag had been unused for some time before I unwisely revived it for use with the gss code. Having removed that use from the gss code, it's time to remove all references to it. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.13, 2005-01-04 19:39:27+01:00, trond.myklebust@fys.uio.no RPC: Instead of setting a flag (RPCAUTH_CRED_DEAD) in the cred to indicate failure of an upcall to get a gss context for that cred, set the status of waiting tasks to indicate failure. This solves problems e.g. with creds with the CRED_DEAD flag set never being refreshed, which caused krb5 mounts to fail after the context used to do RENEWS expired. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.12, 2005-01-04 19:39:01+01:00, trond.myklebust@fys.uio.no RPCSEC_GSS: When the gss code notices that a cred has expired, mark the cred containing the context non-uptodate, triggering creation of a new context. Note that on the send-side operations (get_mic, wrap), we mark the cred as not uptodate, but continue trying to use it; the server can complain if it wants to, and the next time through we'll refresh it. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.11, 2005-01-04 19:38:37+01:00, trond.myklebust@fys.uio.no NFSv4: Convert the NFSv4 close and open_downgrade operations to use asynchronous RPC calls. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.10, 2005-01-04 19:38:13+01:00, trond.myklebust@fys.uio.no NFSv4: setattr, close and open_downgrade should use the state_owner's credentials when they are available. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.9, 2005-01-04 19:37:47+01:00, trond.myklebust@fys.uio.no NFSv4: Make nfs4_do_open() take a dentry argument. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.8, 2005-01-04 19:37:20+01:00, trond.myklebust@fys.uio.no NFS: Change rpc_ops->create() to take a dentry argument rather than a qstr. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.7, 2005-01-04 19:36:52+01:00, trond.myklebust@fys.uio.no NFS: The fact that readdirplus calls now create dentries from within readdir calls renders nfs_cached_lookup() obsolete. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.6, 2005-01-04 19:36:29+01:00, trond.myklebust@fys.uio.no NFS: Make readdirplus create dentries on the fly when we're running through the directory. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.5, 2005-01-04 19:36:01+01:00, trond.myklebust@fys.uio.no RPC: Add missing calls to flush_dcache_page() in net/sunrpc/xdr.c Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.4, 2005-01-04 19:35:39+01:00, trond.myklebust@fys.uio.no RPC: More aggressive RPC debugging code. People are worrying about spinlock deadlocks in the debugging code, without actually worrying about the bugs that triggered the debugging code in the first place. Convert to BUG_ON() in order to ensure that bugs are reported. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.3, 2005-01-04 19:35:12+01:00, trond.myklebust@fys.uio.no RPC: Fix a bug in rpc_killall_tasks(). Shirly Ma reported seeing problems with rpc_killall_tasks() causing the task->tk_magic debugging test to trigger. It turns out we may be killing tasks that are not yet running or even initialized. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.2, 2005-01-04 19:34:47+01:00, trond.myklebust@fys.uio.no RPC: Remove the rpc_queue_lock global spinlock. Replace it with per-rpc_queue spinlocks. Signed-off-by: Trond Myklebust ChangeSet@1.1971.1.1, 2005-01-04 19:34:21+01:00, trond.myklebust@fys.uio.no RPC: Convert rpciod into a work queue for greater flexibility. Signed-off-by: Trond Myklebust ChangeSet@1.1972, 2005-01-04 10:06:07-08:00, torvalds@ppc970.osdl.org Mark HPUSBSCSI scanner broken. You're supposed to use libusb. ChangeSet@1.1971, 2005-01-04 08:16:58-08:00, torvalds@ppc970.osdl.org Hide question about SERIO_LIBPS2 unless there is some remote reason the user migth want to see it. Under any normal use it gets auto-selected by PS/2 mouse or ATKBD support anyway, and if those aren't selected there's no reason to select this one either unless you have some very special uses. ChangeSet@1.1938.478.1, 2005-01-04 08:03:51-08:00, torvalds@ppc970.osdl.org Merge bk://linux-sam.bkbits.net/kbuild into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.1.210, 2005-01-04 16:27:54+01:00, perex@suse.cz [ALSA] Print values at errors EMU10K1/EMU10K2 driver Print out the invalid values at resource allocation errors, too. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.209, 2005-01-04 16:26:38+01:00, perex@suse.cz [ALSA] Don't probe sample rates on non-VRA chips ES1968 driver,CA0106 driver,EMU10K1/EMU10K2 driver Don't probe sample rates on chips which need no VRA. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.208, 2005-01-04 16:25:23+01:00, perex@suse.cz [ALSA] Add codec id in component names AC97 Codec Core Added codec id number to the component names. The component becomes like 'AC97a:12345678'. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.207, 2005-01-04 16:24:14+01:00, perex@suse.cz [ALSA] Fix C-Media codecs AC97 Codec Core Don't create PCM (and Master for CM9739/9761) volume controls for some of C-Media codecs. The volume is supposed to be controlled via softvol plugin. The wrong (duble) entry for a CM9761 model is removed, too. Signed-off-by: Takashi Iwai ChangeSet@1.1938.472.7, 2005-01-04 15:46:20+01:00, dwmw2@shinybook.infradead.org Merge shinybook.infradead.org:/home/dwmw2/bk/linus-2.6 into shinybook.infradead.org:/home/dwmw2/bk/mtd-2.6 ChangeSet@1.1969, 2005-01-04 09:06:19+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.1.205, 2005-01-04 08:36:32+01:00, perex@suse.cz [ALSA] Add a DXS entry for ABIT VA-20 VIA82xx driver Added a DXS whitelist entry for ABIT VA-20. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.204, 2005-01-04 08:35:21+01:00, perex@suse.cz [ALSA] Fix NULL pointer access MIXART driver Fixed NULL pointer access when id string isn't given. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.203, 2005-01-04 08:34:08+01:00, perex@suse.cz [ALSA] Add a new ID CA0106 driver I attach a minor update that corrects the DMA mask, and adds an extra ID. This sound card can handle 32bit DMA addresses. Signed-off-by: James Courtier-Dutton Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.202, 2005-01-04 08:28:18+01:00, perex@suse.cz [ALSA] Clean up and fix stereo mutes AC97 Codec Core Clean up the build of controls. The volume resolution detection is unified. Fixed minor bugs to handle stereo mutes. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.201, 2005-01-04 08:26:44+01:00, perex@suse.cz [ALSA] Clean up handling of user-defined controls Control Midlevel Cleaned up the code to handle user-defined controls. Signed-off-by: Takashi Iwai ChangeSet@1.1938.460.10, 2005-01-04 06:48:44+01:00, akpm@osdl.org bk-kbuild-in_gate_area_no_task-warning-fix arch/x86_64/mm/init.c: In function `in_gate_area_no_task': arch/x86_64/mm/init.c:656: warning: suggest parentheses around && within || In file included from include/asm/numa.h:5, from arch/x86_64/kernel/setup.c:60: Signed-off-by: Andrew Morton Signed-off-by: Sam Ravnborg ChangeSet@1.1938.475.186, 2005-01-03 21:21:57-08:00, zwane@arm.linux.org.uk [PATCH] NX: Fix noexec kernel parameter noexec_setup runs too late to take any effect, so parse it earlier. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.185, 2005-01-03 21:16:56-08:00, heiko.carstens@de.ibm.com [PATCH] s390: SCLP device driver cleanup From: Peter Oberparleiter sclp: core driver cleanup Details: - moved signal shutdown (quiesce) handling into a separate file - cleanup of SCLP core driver: . introduced driver states instead of bits . introduced request retry count and retry limit . sclp_add_request now returns an error code if a request couldn't be started . introduced separate request structure for init_mask requests to simplify code . request timer is now manually checked in sclp_sync_wait because timer interrupts are disabled in this context . removed busy timer - request timer now handles both cases . split up sclp_start_request into __sclp_start_request and sclp_process queue . removed sclp_error_message (unused) . introduced sclp_check_handler function to split up initial init mask test from standard init mask request processing . introduced sclp_deactivate and sclp_reactivate for simplified reboot event handling (and potential use in suspend/resume scenario) . added protection against multiple concurrent init mask calls - minor changes in SCLP core driver: . updated comments . renamed functions to be consistent with "function name starts with __ => needs lock" . renamed internal functions for consistency reasons . introduced inlined helper functions to simplify code . moved EXPORT_SYMBOL definitions next to function definition - changes in sclp console driver . removed callback recursion to prevent stack overflow - changes to CPI module . added check for sclp_add_request return code . changed printks to specify a message level - changes to generic sclp tty layer . removed timed buffer retry after error (timers may not work in some situations) . introduced return code for sclp_emit_buffer - changes to sclp tty driver . removed callback recursion - changes to sclp vt220 driver . removed callback recursion . removed timed buffer retry after error - modified sclp_init_mask to prevent problems with some compiler versions Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.184, 2005-01-03 21:16:43-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DCSS driver cleanup fix From: Carsten Otte - Fix codingstyle. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.183, 2005-01-03 21:16:29-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Character device drivers From: Peter Oberparleiter From: Stefan Bader character device driver changes: - tape: Correct module count usage. - 3270: Use mod_timer only when timer is pending. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.182, 2005-01-03 21:16:16-08:00, heiko.carstens@de.ibm.com [PATCH] s390: DASD driver From: Peter Oberparleiter dasd driver changes: - Modify format analysis routine to use block size provided by on-disk label. - Search data structures when referencing use_diag/ro attribute values. - Correct return code checking when allocating memory. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.181, 2005-01-03 21:16:02-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Network device driver patches From: Ursula Braun-Krahl From: Peter Tiedemann From: Thomas Spatzier From: Frank Pavlic - ctc: make sysfs attribute buffer early available. - ctc: remove memory leak for channel ccw struct. - qeth: remove redundant info card->info.ifname. - qeth: enable recovery with retries in qeth_hardsetup_card after unit check. - qeth: do not allow to set layer2 attribute on IQD devices. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.180, 2005-01-03 21:15:47-08:00, heiko.carstens@de.ibm.com [PATCH] s390: Common I/O layer From: Cornelia Huck common i/o layer changes: - Cope with changed cdev->handler. - Split clearing of subchannels from reipl function and declare it in header. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.179, 2005-01-03 21:15:33-08:00, heiko.carstens@de.ibm.com [PATCH] s390: core patches s390 core changes: - Disable pfault pseudo page faults before stopping a cpu. - Add exception table for diag10 instruction. - Move initialization of active_mm of idle task to smp_create_idle. - Regenerate default configuration. Signed-off-by: Heiko Carstens Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.178, 2005-01-03 21:15:20-08:00, schwidefsky@de.ibm.com [PATCH] s390: remove compat setup_arg_pages32 Remove the s390 version of setup_arg_pages32 function and use the generic setup_arg_pages function instead. Signed-off-by: Martin Schwidefsky Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.177, 2005-01-03 21:15:06-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for the uml block devices. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.176, 2005-01-03 21:14:52-08:00, kraxel@bytesex.org [PATCH] uml: sysfs support for uml network driver. Add sysfs support to the uml network driver. Also comment the eth_init function, I think that one is never ever needed as the devices are initialized when the underlying transport mechanism registeres. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.175, 2005-01-03 21:14:36-08:00, kraxel@bytesex.org [PATCH] uml: raise tty limit Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.174, 2005-01-03 21:14:23-08:00, kraxel@bytesex.org [PATCH] uml: fix umldir init order Fixup initialization order when creating the $HOME/.uml/ directory and the files therein, also make the error messages more useful. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.173, 2005-01-03 21:14:09-08:00, kraxel@bytesex.org [PATCH] uml: symbol export export a missing symbol, IIRC xfs needs that one. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.172, 2005-01-03 21:13:54-08:00, jdike@addtoit.com [PATCH] uml: Fix highmem compilation Remove a reference to an unused variable. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.171, 2005-01-03 21:13:41-08:00, jdike@addtoit.com [PATCH] uml: Remove bogus __NR_sigreturn check Before Bodo's signal fixes and my signal delivery rework, it was possible for a process to execute UML code by running the default signal restorer. This is no longer possible, so this check can be removed from the sanity test for UML accidentally tracing itself. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.170, 2005-01-03 21:13:28-08:00, jdike@addtoit.com [PATCH] uml: declare ptrace_setfpregs Add a declaration for ptrace_setfpregs Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.169, 2005-01-03 21:13:13-08:00, jdike@addtoit.com [PATCH] uml: use SYSEMU_SINGLESTEP This implements using the new ptrace option SYSEMU_SINGLESTEP in UML (advanced sysemu) in SKAS and TT modes. To have a fast selection of the appropriate ptrace option to use next, a 2 dimensional arry is used and singlestepping() is modified to return 0,1 or 2: 0 = don't do singlestepping 1 = singlestep a syscall 2 = singlestep a "non syscall" instruction In do_syscall() writing of the syscall number is supressed, if the advanced sysemu is in use (that does it itself). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.168, 2005-01-03 21:12:59-08:00, jdike@addtoit.com [PATCH] uml: detect SYSEMU_SINGLESTEP From: Bodo Stroesser This implements checking for the new ptrace option SYSEMU_SINGLESTEP (advanced sysemu) and allows the values 0,1,2 for /proc/sysemu, if advanced sysemu is available: 0 = don't use sysemu 1 = use sysemu, but don't use advanced sysemu 2 = use sysemu and advanced sysemu Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.167, 2005-01-03 21:12:43-08:00, jdike@addtoit.com [PATCH] uml: fix update_process_times call From: Bodo Stroesser In call to update_process_times() set parameter user correctly. (was from for SKAS). Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.166, 2005-01-03 21:12:30-08:00, jdike@addtoit.com [PATCH] uml: correctly restore extramask in sigreturn From: Bodo Stroesser Restoring of current->blocked in sys_sigreturn is wrong. The first (long ) of the mask correctly is fetched from sc->oldmask. The further longs again come from there, but correctly should be taken from frame->extramask. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.165, 2005-01-03 21:12:17-08:00, jdike@addtoit.com [PATCH] uml: SYSEMU fixes From: Bodo Stroesser Usage of SYSEMU in TT mode is modified, so that always the same method is used in do_syscall as has been used before in ptrace(PTRACE_SYSCALL/SYSEMU, ...) Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.164, 2005-01-03 21:12:04-08:00, jdike@addtoit.com [PATCH] uml: Allow vsyscall code to build on 2.4 From: Bodo Stroesser This patch fixes compilation on 2.4 hosts by not relying on macros from 2.6 host kernel headers in one userspace file. It's about AT_SYSINFO_* macros. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.163, 2005-01-03 21:11:51-08:00, jdike@addtoit.com [PATCH] uml: Fix setting of TIF_SIGPENDING From: Bodo Stroesser My older patch, that sets TIF_SIGPENDING after an ptrace-interception in syscall_trace() is wrong. Some syscalls want to be called without any signal pending. If a signal is pending on syscall-entry, they immediately return with -ERESTARTNOINTR. Thus, on return to user, the pending signals can be processed and the kernel will lower eip by 2 to have the syscall restarted after that. Since my change sets TIF_SIGPENDING on the entry and exit interception, stracing such a syscall looped! Try "strace ls" to see what happens. Fix: set TIF_SIGPENDING on the exit interception only. This avoids the loop and is enough for security. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.162, 2005-01-03 21:11:38-08:00, jdike@addtoit.com [PATCH] uml: system call restart fixes From: Bodo Stroesser The implementation of sys_sigreturn() and sys_rt_sigreturn() in UML must be changed. This is necessary, since the return value of sys_*_sigreturn() is the value of eax in the thread, that was interrupted by the signal handler. If accidentaly eax contains -ERESTART_*, orig_eax *must* be -1 to avoid syscall restart processing in kern_do_signal(). If orig_eax is >=0, eip might be lowered by 2, the process will fail. In UML PT_REGS_SYSCALL_NR() or UPT_SYSCALL_NR() have to be used instead of orig_eax. While writing and testing an exploit for this, I saw that for most interrupts, the syscall number is undefined. So even on a return from interrupt a wrong syscall restart handling could happen. And also: UML resumes a process with ptrace(PTRACE_SYSCALL/SYSEMU/SINGLESTEP when a syscall in UML in SKAS mode has been processed. But since there is a valid syscall number in the host's orig_eax, the host could do a wrong syscall restarting if the syscall in UML was a sigreturn() returning -ERESTART* To avoid this, in SKAS -1 should be written to regs.orig_eax before restore_registers(). Signed-off-by: Bodo Stroesser Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.161, 2005-01-03 21:11:23-08:00, jdike@addtoit.com [PATCH] uml: export end_iomem From: Bodo Stroesser some modules need end_iomem to be exported. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.160, 2005-01-03 21:11:10-08:00, jdike@addtoit.com [PATCH] uml: small vsyscall fixes From: Bodo Stroesser As Jeff pointed out, the check for address wrapping in access_ok_skas was wrong. Also, change vsyscall_ehdr and vsyscall_end to be unsigned long and export them, since modules need them for access_ok_skas Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.159, 2005-01-03 21:10:59-08:00, jdike@addtoit.com [PATCH] uml: defconfig update Update defconfig for 2.6.10-rc2-mm4. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.158, 2005-01-03 21:10:46-08:00, jdike@addtoit.com [PATCH] uml: kill host processes properly This patch changes how UML kills ptraced processes in order to be more correct in the presence of the ptrace changes in 2.6.9. It used to be that ptrace stopped processes could simply be killed and they would go away. Now, there's a new run state for ptraced processes which doesn't receive signals until they are PTRACE_KILLed or PTRACE_CONTinued. So, this patch kills the process, as usual, then PTRACE_KILL and PTRACE_CONT. This is done in os_kill_ptrace_process() for use from skas mode, and in tracer() when it sees a child process getting a SIGKILL. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.157, 2005-01-03 21:10:34-08:00, jdike@addtoit.com [PATCH] uml: Add TRACESYSGOOD support From: Bodo Stroesser Patch 1/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. Insert a check for availability and function of ptrace(PTRACE_SETOPTIONS,,,PTRACE_O_TRACESYSGOOD) into the normal ptrace checks at startup. Patch 2/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes SKAS-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in SKAS. Patch 3/3 to implement usage of PTRACE_O_TRACESYSGOOD This is necessary, to fix UMLs bad behavior when a process does a systemcall with syscall-number less than 0. This patch makes TT-mode use PTRACE_O_TRACESYSGOOD and fixes the problems in TT. I'm not quite sure, that this patch doesn't cause problems with debugger usage. It should be testet by someone, who has more know how about TT-mode debugger. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.156, 2005-01-03 21:10:21-08:00, jdike@addtoit.com [PATCH] uml: include vsyscall page in core dumps From: Bodo Stroesser Complete the dump with the vsyscall-information, if a vsyscall-page is available. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.155, 2005-01-03 21:10:08-08:00, jdike@addtoit.com [PATCH] uml: make vsyscall page into process page tables From: Bodo Stroesser To make the vsyscall-page available for copy_from_user() and ptrace(), we should use kernel's "gate-vma" mechanism. Therefore we need a valid page structure. To have this, one page (or more) is allocated at boot time, the contents of the vsyscall-page is copied into this page and the page's pte is inserted in swapper's pagetables. Now it will be copied into the pagetables of all processes. Note: this alone doesn't work, since FIXADDR_USER_START and FIXADDR_USER_END are not yet defined correctly. Also access_ok_skas() does not yet grant read accesses to pages not in the normal user area. Risks: Please check the first hunk! I don't know, whether this change is OK. Maybe fixrange_init() is wrong anyway with 3-level-pagetables? Here access_ok_skas() and FIXADDR_USER_XXXX are fixed. Now everything should work fine, while the processes are running. But if a process crashes, the vsyscall-page will not be dumped. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.154, 2005-01-03 21:09:55-08:00, jdike@addtoit.com [PATCH] uml: add elf vsyscall support From: Bodo Stroesser This is the first patch of a series of four. These patches allow the use of sysenter-systemcalls in UML if the host support sysenter. Some facts have to be noted: - the sysenter instruction does not save anything, not even the return address. Thus the host-kernel builds a stackframe with an fixed return address for the backjump to the vsyscall-page. All kernels that support sysenter thus must have a vsyscall-page - The hosts vsyscall-page is visible in all memory-contexts on the host, even in those of the processes running on UML. This cannot be changed. So the best way to implement sysenter is to integrate the host's vsyscall-page into UML, if available. This patch creates a new source file containing an UML initialization function. The function scans the Elf-auxiliary vector that is prepared by the host for relevant information about: - vsyscall elf-header - vsyscall entry - machine type (called "platform", e.g. "i586" or "i686") - hardware capabilities These informations are inserted into the Elf-auxiliary-vector that is generated if an UML process calls "execXX()". If the information from the auxiliray-vector is not complete, UML uses the previos default values, with one exception: if the host has no vsyscall-page, UML now does no longer insert AT_SYSINFO or AT_SYSINFO_EHDR elements. (I think, that's better than writing dummies) Since the host's vsyscall-page is always visible to UML processes, this change is enough to let UML with an i686-compiled glibc use sysenter. what's missing: - is_syscall() in SKAS cannot access the code in the vsyscall-page via copy_from_user(), thus singlesteppers still could break out. (Note: that's not new, if someone jumps willingly to the sysenter-entry in the vsyscall-page, he can do that without the patch, too). - a debugger cannot access the code in the vsyscall-page via ptrace( PEEKTEXT, ...) Risks: could there by any feature of the host's processor, that is indicated in the hardware capabilities, but must not be used in UML? Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.153, 2005-01-03 21:09:42-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: finish fixing run_helper failure path Fix some bugs left in the failure path of run_helper by the previous patch: it was missing one os_close_file(fds[1]) which is conditional. To use the goto handling model, I set the fd to -1 if it's already closed (I don't want to check if keeping one more pipe-end open is no problem). Also do some cosmethic cleanup: * "err" was what we returned even on success, so just use a neutral "ret". * use tabs, not spaces. * a little more comments. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.152, 2005-01-03 21:09:29-08:00, blaisorblade_spam@yahoo.it [PATCH] Uml: first part rework of run_helper() and users. With Jeff Dike , Fixed a file descriptor leak in the network driver when changing an IP address. Fixed the error handling in run_helper. Paolo notes: Actually, this is part one of the change, the exact one extracted from Jeff Dike's incrementals tree before 2.6.9-rc big UML merge. There is some changes must be done, so I'm also sending a second patch with this one, too. Separated for tracking purposes. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.151, 2005-01-03 21:09:16-08:00, kraxel@bytesex.org [PATCH] uml: terminal cleanup This is a major cleanup of the uml terminal drivers and console handling (console as in "where the kernel messages go to", not as in "linux virtual terminals"). The changes in detail: (1) There is a new console driver calles "stderr" which (as the name implies) simply dumps all kernel messages to stderr. That one is registered very early in the boot process via console_initcall() and will print every almost kernel message instantly: Both very early in the boot process and very late in shutdown. Note that this is not enabled by default, see below for details. (2) Ditched the early-console-init hackery in stdio_console.c (open_console(NULL) + related stuff) into the waste basket, not needed any more as you can use the new stderr console driver to get the kernel messages if your kernel crashes very early in the boot process. (3) Handle console initialitation for the uml stdio console and virtual serial lines the normal way using the console->setup() function. Now all kernel messages appear on your console device once it is initialized without any dirty tricks. (4) The (2) changes allow a number of further cleanups: As we don't open a line without a tty_struct any more we can ... * hook struct line into tty->driver_data * pass around tty_struct instead of struct line everythere * get rid of some trivial wrappers in ssl.c and stdio_console.c because we can get struct line via tty_struct all the time now. (5) Change the ordering in the arch/um/drivers/Makefile and thus the link and initialization order to make sure the stdio console and not the virtual serial line is the default console device. (6) Fixed a number of Documentation/CodingStyle issues within the code (not systematically, but usually just the places I was touching anyway or where it bugged me while browsing the code because it was hard to read). Looks like that cleanup also fixed some strange tty issues I've seen in the past (like console getty not responding to input sometimes, suse's /sbin/blogd causing trouble). Finally some usage notes for using the new stderr console: If the stderr console is enabled, then it is the default console device because it registeres very early in the boot process. But as it isn't linked to a tty device this makes init unhappy, you'll see "can't open initial console" error messages. Because you usually don't want that the stderr console is turned off by default. That also maintains the behavior that /dev/tty0 is the first console device registered and thus the default console. There are basically two useful use cases for the stderr console: (1) Your kernel dies before the normal console device is initialized and thus you don't see any messages. Just enable the stderr console to see them by adding "stderr=1" to the kernel command line. (2) You want to have the kernel messages on both stderr and your console terminal device. Try something like this: $ ./linux stderr=1 console=stderr console=ttyS0 ssl0=xterm This example sets up the console on a virtual serial line and pops up an xterm for that. Signed-off-by: Gerd Knorr Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.150, 2005-01-03 21:09:02-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: add some other pagecache methods This is a follow-up to my previous "hostfs - uml: set .sendfile to generic_file_sendfile" patch. I was asking whether other methods should have been added, and comparing with ext3 I found some more ones. However, I have not specific clues about them: I know they use the pagecache, which relies on *page methods, which are defined by hostfs. So I think it could work. I have a doubt, whether hostfs needs the commented out method below: static struct address_space_operations hostfs_aops = { .writepage = hostfs_writepage, .readpage = hostfs_readpage, /* .set_page_dirty = __set_page_dirty_nobuffers, */ .prepare_write = hostfs_prepare_write, .commit_write = hostfs_commit_write }; Hostfs does not have a underlying device (and I have some rough idea that buffers cache block devices data), so I wonder if that is needed or not. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.149, 2005-01-03 21:08:49-08:00, blaisorblade_spam@yahoo.it [PATCH] hostfs: uml: set .sendfile to generic_file_sendfile Make hostfs use the generic sendfile implementation. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.148, 2005-01-03 21:08:33-08:00, jdike@addtoit.com [PATCH] uml: unregister signal handlers at reboot From: Bodo Stroesser In most cases reboot failed on my system. After "Restarting system.", UML exited without further messages. I found an SIGIO being processed by sig_handler() resp. sig_handler_common_skas(). Don't know, why this exits, maybe the context is no longer valid at this time. So, I changed the sequence in the reboot part of main() to stop the timers and disable the fds before unblocking the signals. Since this wasn't enough, I also added set_handler(SIGXXX, SIG_IGN) calls to disable_timer() and deactivate_all_fds(). Now reboot works fine in SKAS and it still works in TT. Signed-off-by: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.147, 2005-01-03 21:08:20-08:00, jdike@addtoit.com [PATCH] uml: free host resources associated with freed IRQs This adds a free_irq_by_irq_and_dev call which was accidentally removed when the UML free_irq was replaced by generic code. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.146, 2005-01-03 21:08:05-08:00, jdike@addtoit.com [PATCH] uml: close host file descriptors properly This process closes some file descriptors which were left open incorrectly. These are the initrd descriptor, the temporary test file used for testing /tmp for execution permission, and a descriptor used by the netork to connect to the switch. In the network case, we add network devices to the opened list as soon as they are added to UML, rather than when they are configured. This ensures that close_devices will remove the device properly on shutdown. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.145, 2005-01-03 21:07:51-08:00, jdike@addtoit.com [PATCH] uml: fix sigreturn to not copy_user under a spinlock Fix sys_sigreturn and sys_rt_sigreturn to avoid calling copy_from_user inside a spinlock. We copy the blocked signal mask into a local sigset_t before the spinlock and then just assign from it inside the lock. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.144, 2005-01-03 21:07:36-08:00, jdike@addtoit.com [PATCH] uml: remove a quilt-induced duplicity This piece appears to have gone in twice. Signed-off-by: Milton Miller Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.143, 2005-01-03 21:07:23-08:00, jdike@addtoit.com [PATCH] uml: unistd.h cleanup From: Chris Wedgewood: this removes unnecessary cruft from unistd.h Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.142, 2005-01-03 21:07:08-08:00, jdike@addtoit.com [PATCH] uml: make restorer match i386 From: Bodo Stroesser Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.141, 2005-01-03 21:06:56-08:00, jdike@addtoit.com [PATCH] uml: redo the signal delivery mechanism This patch rips out the old signal delivery mechanism and replaces it with a sane one. Specifically, UML used to capture a host signal frame and use it as a template for its own signal frames. This was a worthy idea, because it promised a degree of architecture-independence for this part of UML, but impractical. There are some environments, notably 32 bit emulation on a 64 bit box, where you can't use the host signal frame as a template for your own. Plus, this code is as complicated, even to someone who understands what it's doing, as the standard fill-in-a-structure-and-write-it-to-the-stack. For everyone else, it is incomprehensible. So, this reimplements signal handling in the way that everyone else does. It gives up on architecture independence, and moves this code into the x86-specific stuff. Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.140, 2005-01-03 21:05:26-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix some ptrace functions returns values From: Jeff Dike This patch adds ptrace_setfpregs and makes these functions return -errno on failure. Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.139, 2005-01-03 21:05:13-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: fix __wrap_free comment Reworded the comment about __wrap_free detection of the allocator used to allocate the pointer (it can free a pointer created by either the host malloc(), kmalloc() or vmalloc()). Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.138, 2005-01-03 21:05:00-08:00, blaisorblade_spam@yahoo.it [PATCH] uml: remove most devfs_mk_symlink calls Remove uses of devfs_mk_symlink(). We didn't do this before to avoid breaking most user setups, but this patch should be quite harmless. I've excluded the hottest part, i.e. the ubd symlink, while removing the other; I released a end-user tree with this patch and there was a good number of people using the symlink rather than the preferred name. That part will be merged later, I think. Since now we have evidence of less and less users using devfs, we think that it will not cause too much problems. Acked-by: Jeff Dike Signed-off-by: Paolo 'Blaisorblade' Giarrusso Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.137, 2005-01-03 21:04:47-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/mmu_context.h This patch updates include/asm-m32r/mmu_context.h. * include/asm-m32r/mmu_context.h: - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.136, 2005-01-03 21:04:34-08:00, takata@linux-m32r.org [PATCH] m32r: Update include/asm-m32r/system.h This patch updates include/asm-m32r/system.h. * include/asm-m32r/system.h: - Use barrier() as mb(). - Change __inline__ to inline. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.135, 2005-01-03 21:04:21-08:00, takata@linux-m32r.org [PATCH] m32r: Use generic hardirq framework This patch is for employing the generic hardirq framework for m32r. Now CONFIG_GENERIC_HARDIRQS is set to Y by default. - Update to use GENERIC_HARDIRQ framework. - Fix PREEMPT_ACTIVE definition (changeset 1.2000.16.20) Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.134, 2005-01-03 21:04:08-08:00, takata@linux-m32r.org [PATCH] m32r: Make kernel headers for mutual exclusion Here is a patch to update kernel headers for mutual exclusion, atomic.h, bitops.h and semaphore.h of m32r. This patch is for making these headers publishable to userland. * include/asm-m32r/assembler.h (M32R_LOCK, M32R_UNLOCK): Define M32R_LOCK and M32R_UNLOCK macros. For SMP configuration, these macros are expanded to m32r's LOCK and UNLOCK instructions. While, for UP configuration, these are simply expanded to m32r's LD(load) and ST(store) instructions, respectively. * include/asm-m32r/atomic.h, include/asm-m32r/bitops.h, include/asm-m32r/semaphore.h: - Change macros from LOAD and STORE to M32R_LOCK and M32R_UNLOCK, respectively. It is because LOAD and STORE are too generic words. - Change inline to __inline__. Retrieve __inline__ modifiers for functions which are placed outside of __KERNEL__ region in these headers, because those functions might be included and used from ISO C program in userland. Currently, it seems that these headers are allowed to be included from userland. Indeed, they are kernel stuff, but these headers provide useful definitions and functions even for userland applications, I think. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.133, 2005-01-03 21:03:55-08:00, takata@linux-m32r.org [PATCH] m32r: Use kmalloc for m32r stacks - Use kmalloc for m32r stacks (cf. changeset 1.1046.533.10) - Update for CONFIG_DEBUG_STACK_USAGE This modification was taken from include/asm-i386/thread_info.h. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.132, 2005-01-03 21:03:42-08:00, takata@linux-m32r.org [PATCH] m32r: include/asm-m32r/thread_info.h minor updates - Use THREAD_SIZE for __ASSEMBLY__ portion. - Update comments. - Fix a typo: user-thead --> user-thread. NOTE: Now there are two THREAD_SIZE definitions in the following patch, one is in C part and the other is in __ASSEMBLY__ part. I'm going to consolidate these THREAD_SIZE definitions. So, I have to change PAGE_SIZE definition of include/asm-m32r/page.h to be includable into asm portion... Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.131, 2005-01-03 21:03:29-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable-2level.h - Add #ifdef __KERNEL__ - Change __inline__ to inline for __KERNEL__ portion. - Remove RCS ID string. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.130, 2005-01-03 21:03:16-08:00, takata@linux-m32r.org [PATCH] m32r: Remove PAGE_USER - Remove _PAGE_USER bit from pte. - The m32r doesn't support _PAGE_USER bit by hardware. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.129, 2005-01-03 21:03:04-08:00, takata@linux-m32r.org [PATCH] m32r: Support PAGE_NONE - Support PAGE_NONE attribute for memory protection. - Add _PAGE_PROTNONE bit to pte (software bit). Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.128, 2005-01-03 21:02:51-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up include/asm-m32r/pgtable.h - Change PAGE_*_X to PAGE_*_EXEC for good readability. - Add #include __KERNEL__ - Change __inline__ to inline for the __KERNEL__ portion. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.127, 2005-01-03 21:02:38-08:00, takata@linux-m32r.org [PATCH] m32r: Clean up arch/m32r/mm/fault.c - Fix a typo: ACE_USEMODE --> ACE_USERMODE. - Update copyright statement, and so on. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.126, 2005-01-03 21:02:25-08:00, takata@linux-m32r.org [PATCH] m32r: Don't encode ACE_INSTRUCTION in address - To be more comprehensive, keep ACE_INSTRUCTION (access exception on instruction execution) information in thread_info->flags, instead of encoding it into address parameter. Signed-off-by: NIIBE Yutaka Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.125, 2005-01-03 21:02:12-08:00, takata@linux-m32r.org [PATCH] m32r: Cause SIGSEGV for nonexec page execution - Cause a segmentation fault for an illegal execution of a code on non-executable memory page. Signed-off-by: Naoto Sugai Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.124, 2005-01-03 21:01:59-08:00, takata@linux-m32r.org [PATCH] m32r: Update ptrace.c for multithread debugging This patch updates ptrace.c to support multithread debugging. So far, only one breakpoint's location was kept by kernel, however, in the multithreaded application's debug, it is required to kept multi-point breakpoint locations by kernel. In this implementation, maximum number of MAX_TRAPS(=10 (by default)) breakpoint's information will be kept in the "debug_trap" member of the thread_struct for each thread. * include/asm-m32r/processor.h: Modify debug_trap struct to keep multipoint breakpoint locations for multithread debugging. * arch/m32r/kernel/ptrace.c: - Update to support multithread debugging. - Remove unused functions, withdraw_debug_trap_for_signal() and embed_debug_trap_for_signal(). Signed-off-by: Kei Sakamoto Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.123, 2005-01-03 21:01:46-08:00, takata@linux-m32r.org [PATCH] m32r: Support pgprot_noncached() This patch updates include/asm-m32r/pgtable.h to add pgprot_noncached(). It is required to fix a problem of an userspace application, which mmaps io registers. This patch also modifies drivers/video/fbmem.c to support noncachable framebuffer access for m32r. In this routine, pgprot_writecombine() is used hopefully, even though the current m32r never does write-combining or write-coalescing... Please apply this. * include/asm-m32r/pgtable.h (pgprot_noncached, pgprot_writecombine): Newly added. * drivers/video/fbmem.c (fb_mmap): Add m32r support. Signed-off-by: Mamoru Sakugawa Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.122, 2005-01-03 21:01:33-08:00, takata@linux-m32r.org [PATCH] m32r: Add new relocation types to elf.h include/asm-m32r/elf.h: Add relocations R_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_SLO, and R_M32R_GOTOFF_LO. These relocations are required to implement GOTOFF support for m32r. Signed-off-by: Hirokazu Takata Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.121, 2005-01-03 21:01:20-08:00, akpm@osdl.org [PATCH] swsusp-try_to_freeze-to-make-freezing-hooks-nicer fix In file included from include/linux/ptrace.h:77, from arch/ppc64/lib/sstep.c:12: include/linux/sched.h: In function `freeze_processes': include/linux/sched.h:1189: warning: no return statement in function returning non-void Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.120, 2005-01-03 21:01:05-08:00, pavel@ucw.cz [PATCH] swsusp: try_to_freeze to make freezing hooks nicer This moves refrigerator changes to sched.h, so that every file user of refrigerator does not have to include suspend.h, and makes refrigerator support easier by introducing try_to_freeze. Adapted from patch by Nigel Cunningham Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.119, 2005-01-03 21:00:51-08:00, pavel@ucw.cz [PATCH] swsusp: Kill O(n^2) algorithm in swsusp Some machines are spending minutes of CPU time during suspend in stupid O(n^2) algorithm. This patch replaces it with O(n) algorithm, making swsusp usable to some people. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.118, 2005-01-03 21:00:38-08:00, pavel@ucw.cz [PATCH] swsusp: Small cleanups This adds statics at few places and fixes stale references to pmdisk. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.117, 2005-01-03 21:00:25-08:00, pavel@ucw.cz [PATCH] swsusp: kill one-line helpers, handle read errors swsusp contains few one-line helpers that only make reading/understanding code more difficult. Also warn the user when something goes wrong, instead of waking machine with corrupt data. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.116, 2005-01-03 21:00:12-08:00, pavel@ucw.cz [PATCH] swsusp: kill unused variable Variable used only for writing is bad idea. Signed-off-by: Pavel Machek Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.115, 2005-01-03 20:59:56-08:00, pavel@ucw.cz [PATCH] fix naming in swsusp At few points we still reference to swsusp as "pmdisk"... it might confuse someone not knowing full history. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.114, 2005-01-03 20:59:43-08:00, rmk+lkml@arm.linux.org.uk [PATCH] typeof(dev->power.saved_state) arch/arm/common/sa1111.c: In function `sa1111_suspend': arch/arm/common/sa1111.c:816: warning: assignment from incompatible pointer type This is a rather annoying, and IMHO pointless warning. First question: what is the reasoning for using an array of unsigned bytes here? Are we expecting to power manage devices which only have byte wide registers? In reality, devices have half-word and word sized registers as well, which means that dev->power.saved_state actually points to device specific data (or even device driver specific data) for the device. As such, it makes far more sense for this to be a 'void *'. I'd rather not go around the ARM kernel tree adding pointless casts to 'u8 *' and back again because the wrong type for this was picked in the structure definition, so here's a patch which changes this to void *. Signed-off-by: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.113, 2005-01-03 20:59:29-08:00, bjorn.helgaas@hp.com [PATCH] ia64: remove HCDP support for early printk This is only used by the ia64 early_printk patch, which isn't in the mainline tree. If anybody is still using that patch, hcdp_early_uart() should be incorporated into it. Signed-off-by: Bjorn Helgaas Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.112, 2005-01-03 20:59:13-08:00, spyro@f2s.com [PATCH] arm26: better unistd.h (reimplemented based on arm32) Some long overdue updates to this file. newer macros taken from arm32. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.111, 2005-01-03 20:59:00-08:00, spyro@f2s.com [PATCH] arm26: better put_user macros. Better put_user macro. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.110, 2005-01-03 20:58:49-08:00, spyro@f2s.com [PATCH] arm26: TLB update A keep-it-compiling patch based on the arm32 code. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.109, 2005-01-03 20:58:33-08:00, spyro@f2s.com [PATCH] arm26: replace arm32 time handling code with smaller version ARM26 systems only have one possible clock, thus we can merge all this into one source file and drop the ability to dynamically alter it. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.108, 2005-01-03 20:58:20-08:00, spyro@f2s.com [PATCH] arm26: update system.h to some semblance of recentness. The arm26 version of this had become horribly out of date. this is a sideways-port of the arm32 version, dropping the unwanted stuff and adjusted for arm26 compatability. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.107, 2005-01-03 20:58:07-08:00, spyro@f2s.com [PATCH] arm26: softirq update New irq exit handler (part of the softirq changes) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.106, 2005-01-03 20:57:54-08:00, spyro@f2s.com [PATCH] arm26: remove shark (arm32) from arm26 Drop shark support from arm26 (shark isn't arm26 based) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.105, 2005-01-03 20:57:41-08:00, spyro@f2s.com [PATCH] arm26: move some files to better locations This diff effects a restructuring of arm26s directory layout. A number of files can now move to more logical locations, since there are no machine specific directories anymore. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.104, 2005-01-03 20:51:11-08:00, spyro@f2s.com [PATCH] arm26: new execve code This pulls in the execve changes made in arm32. Also, drops some old arm32 power management stuff thats no longer relevant in process.c. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.103, 2005-01-03 20:50:56-08:00, spyro@f2s.com [PATCH] arm26:cleanup trap handling assembly This removes some unneeded definitions and makes the naming used within the file more consistent. Also adds some macros to make it easier to see how the interrupt handler is structured. The assembled output is identical to the original. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.102, 2005-01-03 20:50:42-08:00, spyro@f2s.com [PATCH] arm26: necessary compilation fixes for 2.6.10 Various trivial fixes required to get a clean compile. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.101, 2005-01-03 20:50:29-08:00, spyro@f2s.com [PATCH] arm26: update comments, headers, notes Add and update comments all throughout the arm26 tree. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.100, 2005-01-03 20:50:15-08:00, spyro@f2s.com [PATCH] arm26 build system updates - Updates to makefiles required by the other changes in this patchset. - Also add some entries to the linker scripts. The linker scripts really ought to be merged into one script but that will have to wait. - Add a comment for building xipImages Update the compiler flags used to build arm26 so gcc 3.4 doesnt barf. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.99, 2005-01-03 20:49:59-08:00, spyro@f2s.com [PATCH] arm26: update the atomic ops Replace the macros for atomic ops and bring arm26 up to current definitions. make the arm26 mm code use the proper macros also. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.98, 2005-01-03 20:49:46-08:00, spyro@f2s.com [PATCH] arm26: remove arm32 cruft This patch drops some more stuff left over from the old combined arm26/32 architecture. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.97, 2005-01-03 20:49:33-08:00, ysato@users.sourceforge.jp [PATCH] H8/300 new systemcall support Signed-off-by: Yoshinori Sato Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.96, 2005-01-03 20:49:20-08:00, ak@suse.de [PATCH] x86_64: Eliminate some useless printks in ACPI numa.c Eliminate some useless printks in ACPI numa.c They trigger all the time on x86-64 with CONFIG_ACPI_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.95, 2005-01-03 20:49:07-08:00, ak@suse.de [PATCH] x86_64: Add x86_64 support for Jack Steiner's SLIT sysfs patch Add x86_64 support for Jack Steiner's SLIT sysfs patch Make Jack's code compile on x86-64 and add x86-64 low level support to save the SLIT pointer and a node_distance() implementation. Requires the previous SRAT patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.94, 2005-01-03 20:48:54-08:00, ak@suse.de [PATCH] x86_64: Add SLIT (inter node distance) information to sysfs. Add SLIT (inter node distance) information to sysfs. [This is Jack's patch that he submitted on l-k. I'm submitting it for him because I need it for my x86-64 followon SLIT patch. Hope I don't stomp onto his toes with that one. If you already merged it please ignore] From: Jack Steiner Here is an update patch to externalize the SLIT information. I think I have encorporated all the comments that were posted previously) For example: # cd /sys/devices/system # find . ./node ./node/node5 ./node/node5/distance ./node/node5/numastat ./node/node5/meminfo ./node/node5/cpumap # cat ./node/node0/distance 10 20 64 42 42 22 # cat node/*/distance 10 20 64 42 42 22 20 10 42 22 64 84 64 42 10 20 22 42 42 22 20 10 42 62 42 64 22 42 10 20 22 84 42 62 20 10 Signed-off-by: Jack Steiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.93, 2005-01-03 20:48:43-08:00, ak@suse.de [PATCH] x86_64: Remove unneeded ifdef in hardirq.h Remove unneeded ifdef in hardirq.h I can't see any reason for the #ifdef CONFIG_X86 introduced to the x86_64 hardirq.h as part of the generic irq subsystem changes. Signed-off-by: Adrian Bunk Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.92, 2005-01-03 20:48:28-08:00, ak@suse.de [PATCH] x86_64: Fix EM64T config description Fix EM64T config description From: Xose Vazquez Perez Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.91, 2005-01-03 20:48:15-08:00, ak@suse.de [PATCH] x86_64: Fix some outdated assumptions that CPU numbers are equal numbers. Fix some outdated assumptions that CPU numbers are equal numbers. Depends on the unlimited cpus patch. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.90, 2005-01-03 20:48:03-08:00, ak@suse.de [PATCH] x86_64: Fix a warning in the CMP support code for !CONFIG_NUMA Fix a warning in the CMP support code for !CONFIG_NUMA Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.89, 2005-01-03 20:47:50-08:00, ak@suse.de [PATCH] x86_64: Allow to configure more CPUs and nodes. Allow to configure more CPUs and nodes. With clustered mode and AMD's big flat APIC mode there is no reason anymore to limit the max number of CPUs to 8. Increase the limit to 256 for now, which is the current APIC limit. Untested for now. Also increase the max number of nodes to 64. Remove the MAXNODE define and replace it with MAX_NUMNODES everywhere or the constant if the hardware limits the number of nodes. Also remove some obsolete comments. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.88, 2005-01-03 20:47:37-08:00, ak@suse.de [PATCH] x86_64: Export phys_proc_id Export phys_proc_id This is useful for the powernow-k8 driver which needs to know that two CPUs share a die. It cannot use cpu_sibling_map anymore, so this is an alternative. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.87, 2005-01-03 20:47:24-08:00, ak@suse.de [PATCH] x86_64: Always print segfaults for init. Always print segfaults for init. This gives better debugging output when something is really wrong with the kernel. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.86, 2005-01-03 20:47:11-08:00, ak@suse.de [PATCH] x86_64: Add a missing newline in /proc/cpuinfo Add a missing newline in /proc/cpuinfo Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.85, 2005-01-03 20:46:58-08:00, ak@suse.de [PATCH] x86_64: Add a missing __iomem pointed out by Linus. Add a missing __iomem pointed out by Linus. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.84, 2005-01-03 20:46:45-08:00, ak@suse.de [PATCH] x86_64: Scheduler support for AMD CMP Scheduler support for AMD CMP AMD dual core looks like HT but isn't really. Hide it from the scheduler. This works around problems with the domain scheduler. Also probably gives slightly better scheduling and disables SMT nice which is harmful on dual core. We still display it like HT in /proc/cpuinfo. This is to make it appear the same to license managers so that they count dual cores only as a single physical CPU. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.83, 2005-01-03 20:46:32-08:00, ak@suse.de [PATCH] x86_64: Rename HTVALID to CMP_LEGACY Rename HTVALID to CMP_LEGACY AMD renamed the HTVALID CPUID flag to CMP_LEGACY and reverted its meaning. Follow this for /proc/cpuinfo Needed for the followon CMP patches. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.82, 2005-01-03 20:46:17-08:00, ak@suse.de [PATCH] x86_64: Remove debug information for vsyscalls Remove debug information for vsyscalls This helps gdb apparently because it doesn't like code with debugging information before other code (?) Via the kgdb folks. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.81, 2005-01-03 20:46:04-08:00, ak@suse.de [PATCH] x86_64: Allow a kernel debugger to hide single steps in more cases. Allow a kernel debugger to hide single steps in more cases. Apparently helps the kgdb people. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.80, 2005-01-03 20:45:51-08:00, ak@suse.de [PATCH] x86_64: Update uptime after suspend Update uptime after suspend Derived from i386 Adjust jiffies after suspend to keep uptime. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.79, 2005-01-03 20:45:38-08:00, ak@suse.de [PATCH] x86_64: Add SRAT NUMA discovery to x86-64. Add SRAT NUMA discovery to x86-64. Previously the NUMA nodes on Opteron systems were directly read from the hardware registers of the northbridge. This version also supports reading it from the more generic ACPI SRAT table. This allows to support NUMA on all kinds of systems and in general gives more flexibility, but needs a bit of BIOS support. This implementation was not done before because the SRAT specification had a bad license from Microsoft that didn't allow to implement it on other OS. Now that ACPI 3.0 is released and SRAT is part of it that isn't a concern anymore. One side effect of this is that holes not described in SRAT (e.g. usually the 640K DOS and 4GB PCI memory holes) will not included in the nodes and won't get mem_map entries allocated. This may have side effects for some drivers. Some support for handling dual core AMD CPUs is included. SLIT parsing is done in a later patch. Depends on earlier patches to split up the ACPI boot parsing and to add better CMP support on x86-64. Can be disabled with numa=noacpi Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.78, 2005-01-03 20:45:23-08:00, ak@suse.de [PATCH] x86_64: Split ACPI boot table parsing Split ACPI boot table parsing Split ACPI boot table parsing into two parts. First a acpi_boot_table_init() call that initializes the basic ACPI table parsing machinery and discovers the RSDP, and then another call to actually parse the various boot tables. This is needed for a followon patch that implements SRAT support, because nodes need to be set up before the other ACPI tables can be parsed. On x86-64 I moved the early initialization very early because that is needed for the SRAT parser. On i386 it should be a nop. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.77, 2005-01-03 20:45:08-08:00, ak@suse.de [PATCH] x86_64: Handle NX correctly in pageattr Handle NX correctly in pageattr Second attempt to try to fix an long standing NX bug in change_page_attr. Hopefully this version will be better. The kernel text mapping aliases part of the physical memory and needs its caching attributes changed too. But when doing this one has to be very careful to handle the NX bit correctly. A previous slightly different version of this broke the X server on some RH systems. I hope this version will be better, but if you have X server problems please revert this one. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.76, 2005-01-03 20:44:54-08:00, ak@suse.de [PATCH] x86_64: Collected ioremap fixes Collected ioremap fixes - Call change_page_attr correctly - Fix a race during iounmap - Handle mmio holes without mem_map correctly (needed for SRAT patch) - Some cleanups Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.75, 2005-01-03 20:44:39-08:00, ak@suse.de [PATCH] x86_64: Add reboot=force Add reboot=force reboot=force doesn't wait for any other CPUs on reboot. This is useful when you really need a system to reboot on its own. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.74, 2005-01-03 20:44:26-08:00, ak@suse.de [PATCH] x86_64: Remove BIOS reboot code Remove BIOS reboot code Remove the never quite working BIOS reboot code. This gets rid of a lot of code. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.73, 2005-01-03 20:44:13-08:00, ak@suse.de [PATCH] x86_64: Remove duplicated FAKE_STACK_FRAME macro. Remove duplicated FAKE_STACK_FRAME macro. FAKE_STACK_FRAME macro is defined twice. The one that gets used is in arch/x86_64/kernel/entry.S, and is slightly different codewise, although should have the same end result (uses pushq rather than addq %rsp + movq and has the extra dwarf annotations). Signed-off-by: Chris Wright Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.72, 2005-01-03 20:44:00-08:00, ak@suse.de [PATCH] x86_64: Reenable MGA DRI on x86-64 Reenable MGA DRI on x86-64 Has been reported as working. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.71, 2005-01-03 20:43:47-08:00, pbadari@us.ibm.com [PATCH] x86_64: numa_add_cpu() fix Problem is with "c - cpu_data" arthimetic. "c" could be "boot_cpu_data" or "cpu_data". Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.70, 2005-01-03 20:43:34-08:00, ak@suse.de [PATCH] x86_64: Fix bugs in the AMD K8 CMP support code. Fix bugs in the AMD K8 CMP support code. Check the correct cpuid level and move numa_add_cpu to the correct place. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.69, 2005-01-03 20:43:21-08:00, ak@suse.de [PATCH] x86_64: Add a real pfn_valid Add a real pfn_valid This adds a real pfn_valid. Needed together with the SRAT patch which can generated memmap less holes for mmio. In general it will help to handle memory holes better. Signed-off-by: Andi Kleen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.68, 2005-01-03 20:43:08-08:00, prasanna@in.ibm.com [PATCH] x86_64: do_general_protection() retval check This patch adds the return value check for the exception notifiers at do_general_protection as pointed out by Chuck Ebbert. Signed-off-by: Prasanna S Panchamukhi Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.67, 2005-01-03 20:42:52-08:00, zwane@linuxpower.ca [PATCH] Intel thermal monitor for x86_64 Patch adds support for notification of overheating conditions on intel x86_64 processors. Tested on EM64T, test booted on AMD64. Hardware courtesy of Intel Corporation Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.66, 2005-01-03 20:42:35-08:00, hpa@zytor.com [PATCH] /proc/sys/kernel/bootloader_type This patch exports to userspace the boot loader ID which has been exported by (b)zImage boot loaders since boot protocol version 2. It is needed so that update tools that update kernels from vendors know which bootloader file they need to update; eg right now those tools do all kinds of hairy heuristics to find out if it's grub or lilo or .. that installed the kernel. Those heuristics are fragile in the presence of more than one bootloader (which isn't that uncommon in OS upgrade situations). Tested on i386 and x86-64; as far as I know those are the only architectures which use zImage/bzImage format. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.65, 2005-01-03 20:42:19-08:00, hpa@zytor.com [PATCH] i386 boot loader IDs This patch adds some i386 boot loader IDs that were used but never officially recorded as assigned. This makes them nice and official. Signed-Off-By: H. Peter Anvin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.64, 2005-01-03 20:42:05-08:00, vgoyal@in.ibm.com [PATCH] Secondary cpus boot-up for non default location built kernels This patch fixes the problem of secondary cpus not coming up over a reboot. This problem was seen when a kernel compiled for non default (16MB) location is booted. Signed-off-by: Vivek Goyal Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.63, 2005-01-03 20:41:53-08:00, haveblue@us.ibm.com [PATCH] remove pfn_to_pgdat() on x86 This function is unused on i386. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.62, 2005-01-03 20:41:40-08:00, hpa@zytor.com [PATCH] Trivial cleanup in arch/i386/kernel/head.S Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.61, 2005-01-03 20:41:26-08:00, zwane@arm.linux.org.uk [PATCH] NX: Triple fault with 4k kernel mappings and PAE Booting with NX, CONFIG_X86_PAE and CONFIG_DEBUG_PAGEALLOC or mem=nopentium triple faults really early during boot as it appears to be tripping over pages from PAGE_OFFSET -> PAGE_OFFSET + 0x100000 not being marked as executable. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.60, 2005-01-03 20:41:13-08:00, zwane@linuxpower.ca [PATCH] Cyrix MII cpuid returns stale %ecx This patch is for the following bug, thanks to Ondrej Zary for reporting, testing and submitting a patch. http://bugzilla.kernel.org/show_bug.cgi?id=3767 It appears that the Cyrix MII won't touch %ecx at all resulting in stale data being returned as extended attributes, so clear ecx before issuing the cpuid. I have also made the capability print code display all the capability words for easier debugging in future. Signed-off-by: Zwane Mwaikambo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.59, 2005-01-03 20:41:00-08:00, venkatesh.pallipadi@intel.com [PATCH] x86: remove data-header and code overlap in boot/setup.S The setup.S data and code is not cleanly separated. The current space reserved for setup header is not enough to fit the complete header. As a result, part of the header (EDDBUF) will overwrite the initial code. I haven't seen any negative impact of this bug. As, by the time the setup code is overwritten, we would have finished executing it anyway. But, I think it is better to separate the header and code and prevent this data_overwriting_the_code condition. The atatched patch adds some space in the header to fit all the data listed in Documentation/i386/zero-page.txt for both i386 and x86_64 (and updates zero-page.txt). Signed-off-by:: "Venkatesh Pallipadi" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.58, 2005-01-03 20:40:47-08:00, mbligh@aracnet.com [PATCH] Assign PKMAP_BASE dynamically Badari hit a problem when configuring PAE off (ie CONFIG_4G) where the pkmap area could end up overlapping the fixmap area. For some reason, PKMAP_BASE was defined statically, which seems rather pointless, and asking for trouble. Patch below definines it dynamically, under the fixmap area. The ordering of the VMALLOC_RESERVE space is: FIXADDR_TOP fixed_addresses FIXADDR_START temp fixed addresses FIXADDR_BOOT_START Persistent kmap area PKMAP_BASE VMALLOC_END Vmalloc area VMALLOC_START high_memory Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.57, 2005-01-03 20:40:34-08:00, dhowells@redhat.com [PATCH] IDE_ARCH_OBSOLETE_INIT fix The attached patch fixes the IDE driver to initialise correctly in the case that IDE_ARCH_OBSOLETE_INIT is not defined. Not defining this macro would seem to be the correct thing to do since it includes the word "obsolete" in its name. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.56, 2005-01-03 20:40:21-08:00, dhowells@redhat.com [PATCH] Termio userspace access error handling The attached patch creates a generic set of termio userspace access functions with proper error handling. None of the current archs check for errors in this case. Signed-Off-By: David Howells Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.55, 2005-01-03 20:40:08-08:00, ananth@in.ibm.com [PATCH] Kprobes: wrapper to define jprobe.entry Here is a patch that adds a wrapper for defining jprobe.entry to make t easy to handle the three dword function descriptors defined by the PowerPC ELF ABI. x86, ppc64 and x86_64 are also updated. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.54, 2005-01-03 20:39:55-08:00, david@gibson.dropbear.id.au [PATCH] ppc64: tweaks to ppc64 cpu sysfs information Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Currently the ppc64 sysfs code registers an entry for each possible cpu in sysfs, rather than just online cpus. That makes sense, since the sysfs entries are needed to control onlining of the cpus. However, this is done even if CONFIG_HOTPLUG_CPU is not set, or if it is not a hotplug capable (DLPAR) machine, which is a bit misleading. Secondly it also registers all the other sysfs entries (mostly performance monitoring controls) on all possible cpus, although they are quite meaningless on non-online cpus. This patch alters the code to only register sysfs directories at boot for cpus which are either online or could be onlined (cpu is possible, and CONFIG_HOTPLUG_CPU and an lpar machine). Furthermore, the entries apart from 'online' itself and 'physical_id' are only registered for online CPUs (and deregistered again if a cpu goes offline). Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.53, 2005-01-03 20:39:42-08:00, ananth@in.ibm.com [PATCH] ppc64: kprobes implementation Kprobes (Kernel dynamic probes) is a lightweight mechanism for kernel modules to insert probes into a running kernel, without the need to modify the underlying source. The probe handlers can then be coded to log relevent data at the probe point. More information on kprobes can be found at: http://www-124.ibm.com/developerworks/oss/linux/projects/kprobes/ Jprobes (or jumper probes) is a small infrastructure to access function arguments. It can be used by defining a small stub with the same template as the routine in kernel, within which the required parameters can be logged. Signed-off-by: Ananth N Mavinakayanahalli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.52, 2005-01-03 20:39:27-08:00, a.othieno@bluewin.ch [PATCH] ppc32: Resurrect Documentation/powerpc/cpu_features.txt Documentation/powerpc/cpu_features.txt mysteriously disappeared sometime when 2.5 forked off. Searching through BK logs on linux.bkbits.net didn't reveal anything, unfortunately. The only reference I could pick up from searching the available lkml archives is the 2.4.20-pre11 ChangeLog where this was first merged. Thus far, nothing indicates it was intentionally removed, and AFAICS, is still up to date with the current code. Signed-off-by: Arthur Othieno Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.51, 2005-01-03 20:39:14-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix io_remap_page_range for 36-bit phys platforms Fixes io_remap_page_range() to use the 32-bit address translator similar to ioremap(). Someday u64 start/end resources should make this unnecessary. Fixes set_pte() to handle a long long pte_t properly. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.50, 2005-01-03 20:39:01-08:00, mporter@kernel.crashing.org [PATCH] ppc32: add uImage to default targets We'd like to get a uImage when just using 'make' on many targets. After some discussion, it made sense to simply add uImage to the default targets since it adds minimal build overhead and will work on all platforms. Also, fix a dependency in the boot stuff. Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.49, 2005-01-03 20:38:48-08:00, minyard@acm.org [PATCH] PPC debug setcontext syscall implementation. Add a debugging interface for PowerPC that allows signal handlers (or any jump to a context, really) to perform debug functions. It allows the a user program to turn on single-stepping, for instance, and the thread will get a trap after executing the next instruction. It can also (on supported PPC processors) turn on branch tracing and get a trap after the next branch instruction is executed. This is useful for in-application debugging. Note that you can enable single-stepping on x86 processors directly from signal handlers. Newer x86 processors have the equivalent of a branch-trace bit in the IA32_DEBUGCTL MSR and could have similar function to this syscall. Most other processors could benefit from a similar interface, except for ARM which is extraordinarily broken for debugging. Future uses of this could be adding the ability to set the hardware breakpoint registers from a signal handler. Signed-off-by: Corey Minyard Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.48, 2005-01-03 20:38:35-08:00, mporter@kernel.crashing.org [PATCH] ppc32: remove bogus SPRN_CPC0_GPIO define This trivial patch removes long-standing typo in ibm44x.h. In fact, we already have correct DCRN_CPC0_GPIO define later in the same file. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.47, 2005-01-03 20:38:22-08:00, mporter@kernel.crashing.org [PATCH] ppc32: fix ebony.c warnings This patch removes annoying warnings in ebony.c. Fix is similar to one I made in ocotea.c before. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.46, 2005-01-03 20:38:09-08:00, galak@somerset.sps.mot.com [PATCH] Fix prototypes & externs in e500 oprofile support Remove prototypes and externs out of the .c files Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.45, 2005-01-03 20:37:56-08:00, galak@linen.sps.mot.com [PATCH] ppc32: performance Monitor/Oprofile support for e500 Adds oprofile support for the e500 PowerPC core. Signed-off-by: Andy Fleming Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.44, 2005-01-03 20:33:46-08:00, mporter@kernel.crashing.org [PATCH] ppc32: PPC4xx PIC rewrite/cleanup Patch from Eugene to do some cleanup of the PPC4xx PIC code. Separates the interrupts that can have polarity/triggering modified for platform modification if necessary. Between the two of us, it's tested on most of the affected platforms. Signed-off-by: Eugene Surovegin Signed-off-by: Matt Porter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.43, 2005-01-03 20:33:32-08:00, rvinson@mvista.com [PATCH] ppc32: add Support for IBM 750FX and 750GX Eval Boards I've added support for the IBM 750FX and 750GX Eval Boards (Chestnut/Buckeye). Signed-off-by: Randy Vinson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.42, 2005-01-03 20:33:18-08:00, mgreer@mvista.com [PATCH] ppc32: support for Artesyn Katana cPCI boards This patch adds support for the Artesyn Katana 750i, 752i, and 3750. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.41, 2005-01-03 20:33:05-08:00, mgreer@mvista.com [PATCH] ppc32: support for Force CPCI-690 board This patch adds support for the Force CPCI-690 cPCI board. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.40, 2005-01-03 20:32:51-08:00, mgreer@mvista.com [PATCH] ppc32: support for Marvell EV-64260[ab]-BP eval platform This patch adds support for a line of evaluation platforms from Marvell that use the Marvell GT64260[ab] host bridges. This patch depends on the Marvell host bridge support patch (mv64x60). Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.39, 2005-01-03 20:32:15-08:00, mgreer@mvista.com [PATCH] ppc32-marvell-host-bridge-support-mv64x60 review fixes Here is an incremental patch [hopefully] with your concerns addressed. Note that the arch/ppc/boot code is not kernel code and only exists for a short period of time before execution jumps to the kernel. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.38, 2005-01-03 20:32:01-08:00, mgreer@mvista.com [PATCH] ppc32: Marvell host bridge support (mv64x60) This patch adds core support for a line of host bridges from Marvell (formerly Galileo). This code has been tested with a GT64260a, GT64260b, MV64360, and MV64460. Patches for platforms that use these bridges will be sent separately. The patch is rather large so a link is provided. Signed-off-by: Mark A. Greer Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.37, 2005-01-03 20:20:09-08:00, trini@kernel.crashing.org [PATCH] ppc32: Switch to KBUILD_DEFCONFIG The following patch switches ppc32 from using arch/ppc/defconfig to arch/ppc/configs/common_defconfig as a defconfig. These files are supposed to be identical, but always end up out of sync. This also updates the common_defconfig with current options. Signed-off-by: Tom Rini Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.36, 2005-01-03 20:19:56-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: refactor common book-e exception code Moves common handling of InstructionStorage, Alignment, Program, and Decrementer exceptions handlers for Book-E processors (44x & e500) into common code. Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.35, 2005-01-03 20:19:43-08:00, galak@somerset.sps.mot.com [PATCH] ppc32: freescale Book-E MMU cleanup Updates the Freescale Book-E MMU usage to match the architecture spec. This is mainly growing the widths of fields in various registers to match the architecture spec instead of the implementation. Signed-off-by: Becky Gill Signed-off-by: Kumar Gala Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.34, 2005-01-03 20:19:30-08:00, gandalf@netfilter.org [PATCH] Fix broken RST handling in ip_conntrack Here's a patch that fixes a pretty serious bug introduced by a recent "bugfix". The problem is that RST packets are ignored if they follow an ACK packet, this means that the timeout of the connection isn't decreased, so we get lots of old connections lingering around until the timeout expires, the default timeout for state ESTABLISHED is 5 days. This needs to go into -bk as soon as possible. The bug is present in 2.6.10 as well. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.33, 2005-01-03 20:19:17-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix cleanup in ipt_recent should ipt_registrater_match error When ipt_registrater_match() fails, ipt_recent doesn't remove its proc entry. Found by nfsim. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.32, 2005-01-03 20:19:04-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove copy_to_user Warnings in Netfilter After changing firewall rules, we try to return the counters to userspace. We didn't fail at that point if the copy failed, but it doesn't really matter. Someone added a warn_unused_result attribute to copy_to_user, so we get bogus warnings. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.31, 2005-01-03 20:18:48-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Remove IPCHAINS and IPFWADM compatibility We've been threatening to do this for ages: remove the backwards compatibility code. We can now combine ip_conntrack_core.c and ip_conntrack_standalone.c, likewise for the NAT code, but that will come later. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.30, 2005-01-03 20:18:31-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Add comment above remove_expectations in destroy_conntrack() I removed this code in a previous patch, and Patrick McHardy explained what was wrong. Add a comment. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.29, 2005-01-03 20:18:18-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_ct_selective_cleanup(), and rename ip_ct_iterate_cleanup() Several places use ip_ct_selective_cleanup() as a general iterator, which it was not intended for (it takes a const ip_conntrack *). So rename it, and make it take a non-const argument. Also, it missed unconfirmed connections, which aren't in the hash table. This introduces a potential problem for users which expect to iterate all connections (such as the helper deletion code). So keep a linked list of unconfirmed connections as well. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.28, 2005-01-03 20:18:05-08:00, rusty@rustcorp.com.au [PATCH] netfilter: Fix ip_conntrack_proto_sctp exit on sysctl fail On failure from register_sysctl_table, we return with exit 0. Oops. init and fini should also be static. nfsim found these. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.27, 2005-01-03 20:17:52-08:00, rusty@rustcorp.com.au [PATCH] netfilter: fix return values of ipt_recent checkentry Peejix's nfsim test for ipt_recent, written two days ago, revealed this bugs with ipt_recent: checkentry() returns true or false, not an error. (Maybe it should, but that's a much larger change). Also, make hash_func() static. Signed-off-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.26, 2005-01-03 20:17:39-08:00, bcasavan@sgi.com [PATCH] TCP hashes: NUMA interleaving Modifies the TCP ehash and TCP bhash to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.25, 2005-01-03 20:17:25-08:00, bcasavan@sgi.com [PATCH] filesystem hashes: NUMA interleaving The following patch modifies the dentry cache and inode cache to enable the use of vmalloc to alleviate boottime memory allocation imbalances on NUMA systems, utilizing flags to the alloc_large_system_hash routine in order to centralize the enabling of this behavior. In general, for each hash, we check at the early allocation point whether hash distribution is enabled, and if so we defer allocation. At the late allocation point we perform the allocation if it was not earlier deferred. These late allocation points are the same points utilized prior to the addition of alloc_large_system_hash to the kernel. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.24, 2005-01-03 20:17:12-08:00, bcasavan@sgi.com [PATCH] alloc_large_system_hash: NUMA interleaving NUMA systems running current Linux kernels suffer from substantial inequities in the amount of memory allocated from each NUMA node during boot. In particular, several large hashes are allocated using alloc_bootmem, and as such are allocated contiguously from a single node each. This becomes a problem for certain workloads that are relatively common on big-iron HPC NUMA systems. In particular, a number of MPI and OpenMP applications which require nearly all available processors in the system and nearly all the memory on each node run into difficulties. Due to the uneven memory distribution onto a few nodes, any thread on those nodes will require a portion of its memory be allocated from remote nodes. Any access to those memory locations will be slower than local accesses, and thereby slows down the effective computation rate for the affected CPUs/threads. This problem is further amplified if the application is tightly synchronized between threads (as is often the case), as they entire job can run only at the speed of the slowest thread. Additionally since these hashes are usually accessed by all CPUS in the system, the NUMA network link on the node which hosts the hash experiences disproportionate traffic levels, thereby reducing the memory bandwidth available to that node's CPUs, and further penalizing performance of the threads executed thereupon. As such, it is desired to find a way to distribute these large hash allocations more evenly across NUMA nodes. Fortunately current kernels do perform allocation interleaving for vmalloc() during boot, which provides a stepping stone to a solution. This series of patches enables (but does not require) the kernel to allocate several boot time hashes using vmalloc rather than alloc_bootmem, thereby causing the hashes to be interleaved amongst NUMA nodes. In particular the dentry cache, inode cache, TCP ehash, and TCP bhash have been changed to be allocated in this manner. Due to the limited vmalloc space on architectures such as i386, this behavior is turned on by default only for IA64 NUMA systems (though there is no reason other interested architectures could not enable it if desired). Non-IA64 and non-NUMA systems continue to use the existing alloc_bootmem() allocation mechanism. A boot line parameter "hashdist" can be set to override the default behavior. The following two sets of example output show the uneven distribution just after boot, using init=/bin/sh to eliminate as much non-kernel allocation as possible. Without the boot hash distribution patches: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3697696 172960 1 3882992 3866656 16336 2 3883008 3866784 16224 3 3882992 3866464 16528 4 3883008 3866592 16416 5 3883008 3866720 16288 6 3882992 3342176 540816 7 3883008 3865440 17568 8 3882992 3866560 16432 9 3883008 3866400 16608 10 3882992 3866592 16400 11 3883008 3866400 16608 12 3882992 3866400 16592 13 3883008 3866432 16576 14 3883008 3866528 16480 15 3864768 3848256 16512 ToT 62097440 61152096 945344 Notice that nodes 0 and 6 have a substantially larger memory utilization than all other nodes. With the boot hash distribution patch: Nid MemTotal MemFree MemUsed (in kB) 0 3870656 3789792 80864 1 3882992 3843776 39216 2 3883008 3843808 39200 3 3882992 3843904 39088 4 3883008 3827488 55520 5 3883008 3843712 39296 6 3882992 3843936 39056 7 3883008 3844096 38912 8 3882992 3843712 39280 9 3883008 3844000 39008 10 3882992 3843872 39120 11 3883008 3843872 39136 12 3882992 3843808 39184 13 3883008 3843936 39072 14 3883008 3843712 39296 15 3864768 3825760 39008 ToT 62097440 61413184 684256 While not perfectly even, we can see that there is a substantial improvement in the spread of memory allocated by the kernel during boot. The remaining uneveness may be due in part to further boot time allocations that could be addressed in a similar manner, but some difference is due to the somewhat special nature of node 0 during boot. However the uneveness has fallen to a much more acceptable level (at least to a level that SGI isn't concerned about). The astute reader will also notice that in this example, with this patch approximately 256 MB less memory was allocated during boot. This is due to the size limits of a single vmalloc. More specifically, this is because the automatically computed size of the TCP ehash exceeds the maximum size which a single vmalloc can accomodate. However this is of little practical concern as the vmalloc size limit simply reduces one ridiculously large allocation (512MB) to a slightly less ridiculously large allocation (256MB). In practice machines with large memory configurations are using the thash_entries setting to limit the size of the TCP ehash _much_ lower than either of the automatically computed values. Illustrative of the exceedingly large nature of the automatically computed size, SGI currently recommends that customers boot with thash_entries=2097152, which works out to a 32MB allocation. In any case, setting hashdist=0 will allow for allocations in excess of vmalloc limits, if so desired. Other than the vmalloc limit, great care was taken to ensure that the size of TCP hash allocations was not altered by this patch. Due to slightly different computation techniques between the existing TCP code and alloc_large_system_hash (which is now utilized), some of the magic constants in the TCP hash allocation code were changed. On all sizes of system (128MB through 64GB) that I had access to, the patched code preserves the previous hash size, as long as the vmalloc limit (256MB on IA64) is not encountered. There was concern that changing the TCP-related hashes to use vmalloc space may adversely impact network performance. To this end the netperf set of benchmarks was run. Some individual tests seemed to benefit slightly, some seemed to be harmed slightly, but in all cases the average difference with and without these patches was well within the variabilty I would see from run to run. The following is the overall netperf averages (30 10 second runs each) against an older kernel with these same patches. These tests were run over loopback as GigE results were so inconsistent run to run both with and without these patches that they provided no meaningful comparison that I could discern. I used the same kernel (IA64 generic) for each run, simply varying the new "hashdist" boot parameter to turn on or off the new allocation behavior. In all cases the thash_entries value was manually specified as discussed previously to eliminate any variability that might result from that size difference. HP ZX1, hashdist=0 ================== TCP_RR = 19389 TCP_MAERTS = 6561 TCP_STREAM = 6590 TCP_CC = 9483 TCP_CRR = 8633 HP ZX1, hashdist=1 ================== TCP_RR = 19411 TCP_MAERTS = 6559 TCP_STREAM = 6584 TCP_CC = 9454 TCP_CRR = 8626 SGI Altix, hashdist=0 ===================== TCP_RR = 16871 TCP_MAERTS = 3925 TCP_STREAM = 4055 TCP_CC = 8438 TCP_CRR = 7750 SGI Altix, hashdist=1 ===================== TCP_RR = 17040 TCP_MAERTS = 3913 TCP_STREAM = 4044 TCP_CC = 8367 TCP_CRR = 7538 I believe the TCP_CC and TCP_CRR are the tests most sensitive to this particular change. But again, I want to emphasize that even the differences you see above are _well_ within the variability I saw from run to run of any given test. In addition, Jose Santos at IBM has run specSFS, which has been particularly sensitive to TLB issues, against these patches and saw no performance degredation (differences down in the noise). This patch: Modifies alloc_large_system_hash to enable the use of vmalloc to alleviate boottime allocation imbalances on NUMA systems. Due to limited vmalloc space on some architectures (i.e. x86), the use of vmalloc is enabled by default only on NUMA IA64 kernels. There should be no problem enabling this change for any other interested NUMA architecture. Signed-off-by: Brent Casavant Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.23, 2005-01-03 20:16:59-08:00, alex.williamson@hp.com [PATCH] collect page_states only from online cpus I noticed the function __read_page_state() curiously high in a q-tools profile of a write to a software raid0 device. Seems this is because we're checking page_states for all possible cpus and we have NR_CPUS possible when CONFIG_HOTPLUG_CPU=y. The default config for ia64 is now NR_CPUS=512, so on a little 8-way box, this is a significant waste of time. The patch below updates __read_page_state() and __get_page_state() to only count page_state info for online cpus. To keep the stats consistent, the page_alloc notifier is updated to move page_states off of the cpu going offline. On my profile, this dropped __read_page_state() back into the noise and boosted block write performance by 5% (as measured by spew - http://spew.berlios.de). Signed-off-by: Alex Williamson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.22, 2005-01-03 20:16:46-08:00, manfred@colorfullife.com [PATCH] slab: Add more arch overrides to control object alignment Add ARCH_SLAB_MINALIGN and document ARCH_KMALLOC_MINALIGN: The flags allow the arch code to override the default minimum object aligment (BYTES_PER_WORD). Signed-Off-By: Manfred Spraul Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.21, 2005-01-03 20:16:33-08:00, akpm@osdl.org [PATCH] do_anonymous_page() use SetPageReferenced mark_page_accessed() is more heavyweight than we need: the page is already headed for the active list, so setting the software-referenced bit is equivalent. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.20, 2005-01-03 20:16:19-08:00, miquels@cistron.nl [PATCH] mark_page_accessed() for read()s on non-page boundaries When reading a (partial) page from disk using read(), the kernel only marks the page as "accessed" if the read started at a page boundary. This means that files that are accessed randomly at non-page boundaries (usually database style files) will not be cached properly. The patch below uses the readahead state instead. If a page is read(), it is marked as "accessed" if the previous read() was for a different page, whatever the offset in the page. Testing results: - Boot kernel with mem=128M - create a testfile of size 8 MB on a partition. Unmount/mount. - then generate about 10 MB/sec streaming writes for i in `seq 1 1000` do dd if=/dev/zero of=junkfile.$i bs=1M count=10 sync cat junkfile.$i > /dev/null sleep 1 done - use an application that reads 128 bytes 64000 times from a random offset in the 64 MB testfile. 1. Linux 2.6.10-rc3 vanilla, no streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.22s system 5% cpu 4.456 total 2. Linux 2.6.10-rc3 vanilla, streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.16s system 2% cpu 7.667 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.37s system 1% cpu 23.294 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.99s system 1% cpu 1:11.52 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.21s system 2% cpu 10.273 total 3. Linux 2.6.10-rc3 with read-page-access.patch , streaming writes: # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.21s system 3% cpu 7.634 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.04s user 0.22s system 2% cpu 9.588 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.02s user 0.12s system 24% cpu 0.563 total # time ~/rr testfile Read 128 bytes 64000 times ~/rr testfile 0.03s user 0.13s system 98% cpu 0.163 total As expected, with the read-page-access.patch, the kernel keeps the 8 MB testfile cached as expected, while without it, it doesn't. So this is useful for workloads where one smallish (wrt RAM) file is read randomly over and over again (like heavily used database indexes), while other I/O is going on. Plain 2.6 caches those files poorly, if the app uses plain read(). Signed-Off-By: Miquel van Smoorenburg Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.19, 2005-01-03 20:16:04-08:00, haveblue@us.ibm.com [PATCH] make sure ioremap only tests valid addresses When CONFIG_HIGHMEM=y, but ZONE_NORMAL isn't quite full, there is, of course, no actual memory at *high_memory. This isn't a problem with normal virt<->phys translations because it's never dereferenced, but CONFIG_NONLINEAR is a bit more finicky. So, don't do virt_to_phys() to non-existent addresses. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.18, 2005-01-03 20:15:51-08:00, haveblue@us.ibm.com [PATCH] kill off highmem_start_page People love to do comparisons with highmem_start_page. However, where CONFIG_HIGHMEM=y and there is no actual highmem, there's no real page at *highmem_start_page. That's usually not a problem, but CONFIG_NONLINEAR is a bit more strict and catches the bogus address tranlations. There are about a gillion different ways to find out of a 'struct page' is highmem or not. Why not just check page_flags? Just use PageHighMem() wherever there used to be a highmem_start_page comparison. Then, kill off highmem_start_page. This removes more code than it adds, and gets rid of some nasty #ifdefs in .c files. Signed-off-by: Dave Hansen Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.17, 2005-01-03 20:15:37-08:00, Andries.Brouwer@cwi.nl [PATCH] mm: overcommit updates Alan made overcommit mode 2 and it doesnt work at all. A process passing the limit often does so at a moment of stack extension, and is killed by a segfault, not better than being OOM-killed. Another problem is that close to the edge no other processes can be started, so that a sysadmin has problems logging in and investigating. Below a patch that does 3 things: (1) It reserves a reasonable amount of virtual stack space (amount randomly chosen, no guarantees given) when the process is started, so that the common utilities will not be killed by segfault on stack extension. (2) It reserves a reasonable amount of virtual memory for root, so that root can do things when the system is out-of-memory (3) It limits a single process to 97% of what is left, so that also an ordinary user is able to use getty, login, bash, ps, kill and similar things when one of her processes got out of control. Since the current overcommit mode 2 is not really useful, I did not give this a new number. The patch is just for playing, not to be applied by Linus. But, Andrew, I hope that you would be willing to put this in -mm so that people can experiment. Of course it only does something if one sets overcommit mode to 2. The past month I have pressured people asking for feedback, and now have about a dozen reports, mostly positive, one very positive. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.16, 2005-01-03 20:15:21-08:00, andrea@novell.com [PATCH] mempolicy optimisation Some optimizations in mempolicy.c (like to avoid rebalancing the tree while destroying it and by breaking loops early and not checking for invariant conditions in the replace operation). Signed-off-by: Andrea Arcangeli Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.15, 2005-01-03 20:15:08-08:00, linuxram@us.ibm.com [PATCH] Simplified readahead congestion control Reinstate the feature wherein readahead will be bypassed if the underlying queue is read-congersted. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.14, 2005-01-03 20:14:55-08:00, slpratt@austin.ibm.com [PATCH] Simplified readahead With Ram Pai - request size is now passed into page_cache_readahead. This allows the removal of the size averaging code in the current readahead logic. - readahead rampup is now faster (especially for larger request sizes) - No longer "slow read path". Readahead is turn off at first random access, turned back on at first sequential access. - Code now handles thrashing, slowly reducing readahead window until thrashing stops, or min size reached. - Returned to old behavior where first access is assumed sequential only if at offset 0. - designed to handle larger (1M or above) window sizes efficiently Benchmark results: machine 1: 8 way pentiumIV 1GB memory, tests run to 36GB SCSI disk (Similar results were seen on a 1 way 866Mhz box with IDE disk.) TioBench: tiobench.pl --dir /mnt/tmp --block 4096 --size 4000 --numruns 2 --threads 1(4,16,64) 4k request size sequential read results in MB/sec Threads 2.6.9 w/patches %diff diff ChangeSet@1.1938.475.13, 2005-01-03 20:14:42-08:00, nickpiggin@yahoo.com.au [PATCH] mm: teach kswapd about higher order areas Teach kswapd to free memory on behalf of higher order allocators. This could be important for higher order atomic allocations because they otherwise have no means to free the memory themselves. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.12, 2005-01-03 20:14:29-08:00, nickpiggin@yahoo.com.au [PATCH] mm: higher order watermarks Move the watermark checking code into a single function. Extend it to account for the order of the allocation and the number of free pages that could satisfy such a request. From: Marcelo Tosatti Fix typo in Nick's kswapd-high-order awareness patch Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.11, 2005-01-03 20:14:14-08:00, nickpiggin@yahoo.com.au [PATCH] mm: keep count of free areas Keep track of the number of free pages of each order in the buddy allocator. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.10, 2005-01-03 20:14:02-08:00, rjmx@rjmx.net [PATCH] CS461x gameport code isn't being included in build With Cal Peake I've found a typo in drivers/input/gameport/Makefile in kernel 2.6.9 which effectively prevents the CS461x gameport code from being included. Signed-off-by: Ron Murray Signed-off-by: Cal Peake Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.9, 2005-01-03 20:13:49-08:00, akpm@osdl.org [PATCH] vmscan: total_scanned fix We haven't been incrementing local variable total_scanned since the scan_control stuff went in. That broke kswapd throttling. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.8, 2005-01-03 20:13:31-08:00, jack@suse.cz [PATCH] Allow disabling quota messages to console Allow disabling of quota messages to console (they can disturb other output). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.7, 2005-01-03 20:13:18-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: reiserfs Implement quota journaling and quota reading and writing functions for reiserfs. Solves also several other deadlocks possible for reiserfs due to the lock inversion on journal_begin and quota locks. From: Vladimir Saveliev When CONFIG_QUOTA is defined reiserfs's finish_unfinished sets and clears MS_ACTIVE bit in s_flags field of super block. If that bit was set already it should not be set. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.6, 2005-01-03 20:13:03-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext3 Implementation of quota reading and writing functions for ext3. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.5, 2005-01-03 20:12:49-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: ext2 Implementation of quota reading and writing functions for ext2. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.4, 2005-01-03 20:12:36-08:00, jack@suse.cz [PATCH] quota umount race fix Fix possible races between umount and quota on/off. Finally I decided to take a reference to vfsmount during vfs_quota_on() and to drop it after the final cleanup in the vfs_quota_off(). This way we should be all the time guarded against umount. This way was protected also the old code which used filp_open() for opening quota files. I was also thinking about other ways of protection but there would be always a window (provided I don't want to play much with namespace locks) where vfs_quota_on() could be called while umount() is in progress resulting in the "Busy inodes after unmount" messages... Get a reference to vfsmount during quotaon() so that we are guarded against umount (as was the old code using filp_open()). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.3, 2005-01-03 20:12:24-08:00, jack@suse.cz [PATCH] Fix of quota deadlock on pagelock: quota core The four patches in this series fix deadlocks with quotas of pagelock (the problem was lock inversion on PageLock and transaction start - quota code needed to first start a transaction and then write the data which subsequently needed acquisition of PageLock while the standard ordering - PageLock first and transaction start later - was used e.g. by pdflush). They implement a new way of quota access to disk: Every filesystem that would like to implement quotas now has to provide quota_read() and quota_write() functions. These functions must obey quota lock ordering (in particular they should not take PageLock inside a transaction). The first patch implements the changes in the quota core, the other three patches implement needed functions in ext2, ext3 and reiserfs. The patch for reiserfs also fixes several other lock inversion problems (similar as ext3 had) and implements the journaled quota functionality (which comes almost for free after the locking fixes...). The quota core patch makes quota support in other filesystems (except XFS which implements everything on its own ;)) unfunctional (quotaon() will refuse to turn on quotas on them). When the patches get reasonable wide testing and it will seem that no major changes will be needed I can make fixes also for the other filesystems (JFS, UDF, UFS). This patch: The patch implements the new way of quota io in the quota core. Every filesystem wanting to support quotas has to provide functions quota_read() and quota_write() obeying quota locking rules. As the writes and reads bypass the pagecache there is some ugly stuff ensuring that userspace can see all the data after quotaoff() (or Q_SYNC quotactl). In future I plan to make quota files inaccessible from userspace (with the exception of quotacheck(8) which will take care about the cache flushing and such stuff itself) so that this synchronization stuff can be removed... The rewrite of the quota core. Quota uses the filesystem read() and write() functions no more to avoid possible deadlocks on PageLock. From now on every filesystem supporting quotas must provide functions quota_read() and quota_write() which obey the quota locking rules (e.g. they cannot acquire the PageLock). Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.2, 2005-01-03 20:12:10-08:00, jack@suse.cz [PATCH] Fix reiserfs quota debug messages Attached patch fixes debug messages of quota code in reiserfs so that they compile. Chris Mason agreed the patch. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.475.1, 2005-01-03 20:11:57-08:00, jack@suse.cz [PATCH] Expose reiserfs_sync_fs() Attached patch exposes reiserfs_sync_fs(). This call is needed by the new quota code to write data to disk on quotaoff so that userspace can see them afterwards. Chris Mason agrees with the patch. Make reiserfs provide the sync_fs() function so that the quota code has a way to reliably force a transaction to disk. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.474.1, 2005-01-03 22:48:10+00:00, mzzhgg@de.rmk.(none) [SERIAL] support for another Rockwell PNP modem From: Lennart Poettering Trivial patch against Linux 2.6.10 which adds PNP support for a certain kind of Rockwell 28.8/ISA modems. ChangeSet@1.1938.473.2, 2005-01-03 18:56:59+00:00, rmk@flint.arm.linux.org.uk [MMC] Remove deprecated data->req Since all users of this have now been eliminated, we can eliminate the element itself. MMC host drivers now operate only on the scatter lists passed to them, rather than needing knowledge of block devices. Signed-off-by: Russell King ChangeSet@1.1938.473.1, 2005-01-03 18:37:35+00:00, drzeus-list@cx.rmk.(none) [MMC] Fix warning in wbsd From: Pierre Ossman Cleanup that fixes a warning in the wbsd module. ChangeSet@1.1938.472.5, 2005-01-03 18:28:00+00:00, rmk@flint.arm.linux.org.uk [ARM] Fix some pointer/integer conversion warnings for RiscPC. Signed-off-by: Russell King ChangeSet@1.1938.472.4, 2005-01-03 18:07:07+00:00, rmk@flint.arm.linux.org.uk [ARm] Silence a couple of compiler warnings. Signed-off-by: Russell King ChangeSet@1.1938.472.3, 2005-01-03 17:02:08+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2342/1: Support PXA SSP configuration changes when port is open Patch from Liam Girdwood This patch allows the PXA SSP port configuration to be changed without the need to close the port. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1938.472.2, 2005-01-03 16:33:30+00:00, rmk@flint.arm.linux.org.uk [ARM] Swap DOMAIN_USER and DOMAIN_KERNEL indicies This changes kernel domains to use domain 0 rather than domain 1, in preparation to supporting supersection mappings. Signed-off-by: Russell King ChangeSet@1.1938.472.1, 2005-01-03 16:13:30+00:00, Liam.Girdwood@com.rmk.(none) [ARM PATCH] 2340/1: Added PXA27x SSP port 3 to kernel io address range Patch from Liam Girdwood This patch adds the PXA27x SSP port 3 configuration register space (Phys 0x41900000) to the kernel memory table. Signed-off-by: Liam Girdwood Signed-off-by: Russell King ChangeSet@1.1938.1.200, 2005-01-03 15:12:29+01:00, perex@suse.cz Merge suse.cz:/home/perex/bk/linux-sound/linux-sound into suse.cz:/home/perex/bk/linux-sound/work ChangeSet@1.1938.1.199, 2005-01-03 14:55:25+01:00, perex@suse.cz Merge suse.cz:/home/perex/bk/linux-sound/linux-2.5 into suse.cz:/home/perex/bk/linux-sound/linux-sound ChangeSet@1.1938.421.85, 2005-01-03 14:17:36+01:00, perex@suse.cz [ALSA] Fix spinlock au88x0 driver Fixed possible spin deadlocks. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.84, 2005-01-03 14:16:30+01:00, perex@suse.cz [ALSA] Add CODEC and BUS device types OPL3,OPL4,I2C lib core,L3 drivers,AK4117 receiver,ALSA Core EMU8000 driver,AC97 Codec Core,AK4531 codec Added SNDRV_DEV_CODEC and SNDRV_DEV_BUS types to tell from the lowlevel components. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.83, 2005-01-03 14:15:19+01:00, perex@suse.cz [ALSA] Remove superfluous code USB USX2Y Removed the superfluous creation/deletion of lowlevel component. It's not used at all. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.82, 2005-01-03 14:14:10+01:00, perex@suse.cz [ALSA] Fix the order of creation of instances AZT3328 driver,CMIPCI driver,CS4281 driver,ENS1370/1+ driver Maestro3 driver,SonicVibes driver,CS46xx driver,KORG1212 driver NM256 driver,Trident driver,YMFPCI driver Make sure that the chip instance is created at first before other components. This will fix occasional oops at unloading due to the access to the released resources. Signed-off-by: Takashi Iwai ChangeSet@1.1968, 2005-01-03 14:13:22+01:00, dtor_core@ameritech.net Input: i8042 - fix "debug" parameter sysfs permissions. Signed-off-by: Dmitry Torokhov Signed-off-by: Vojtech Pavlik ChangeSet@1.1938.421.81, 2005-01-03 14:12:59+01:00, perex@suse.cz [ALSA] Clean up codes ALSA<-OSS emulation Got rid of the unused float codes (the legacy code for sharing with ALSA library). Add assert to the invalid conversion indices which results in oops (just to be sure). Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.80, 2005-01-03 14:11:51+01:00, perex@suse.cz [ALSA] Description about snd_card_set_dev() Documentation Added the description about snd_card_set_dev(). Misc cleanup. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.79, 2005-01-03 14:10:46+01:00, perex@suse.cz [ALSA] Fix the release of resources at error path Control Midlevel Implemented free callback to fix the release of control resources before calling register. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.78, 2005-01-03 14:09:39+01:00, perex@suse.cz [ALSA] Update documentation for hotplug fw loader Documentation Updated descriptions about the firmware loading for the recent support of hotplug firmware loader. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.77, 2005-01-03 14:08:33+01:00, perex@suse.cz [ALSA] Add hotplug firmware loader support RME HDSP driver Added the hotplug firmware loader support without hdsploader. The firmware data must be installed beforehand in the proper place from the latest alsa-firmware package. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.76, 2005-01-03 13:40:30+01:00, perex@suse.cz [ALSA] Fix compile warning EMU10K1/EMU10K2 driver Removed an unused variable to fix a compile warning. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.75, 2005-01-03 13:38:17+01:00, perex@suse.cz [ALSA] Fix compile warning (make inline) AZT3328 driver Fixed compile warning when built without joystick support. (Optimized via inline.) Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.74, 2005-01-03 13:36:57+01:00, perex@suse.cz [ALSA] Fix open handling USB USX2Y Return -EBUSY from snd_usX2Y_usbpcm_open(), if the associated hwdep device is not opened. It now works as originally intended. Had forgotten a pair of parenthesis. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ChangeSet@1.1967, 2005-01-03 13:15:38+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.421.73, 2005-01-03 13:07:33+01:00, perex@suse.cz [ALSA CVS] delete unused file Remove nowhere referenced file. (egrep "filename\." didn't find anything) Signed-off-by: Domen Puncer Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.72, 2005-01-03 11:48:48+01:00, perex@suse.cz [ALSA] Code clean up EMU10K1/EMU10K2 driver Small code clean up. Use snd_pcm_lib_preallocage_pages_for_all() for buffer allocation. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.71, 2005-01-03 11:47:44+01:00, perex@suse.cz [ALSA] Avoid VRA on codec chips YMFPCI driver Avoid VRA setting on ac97 codec chips. YMFPCI doesn't need VRA. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.70, 2005-01-03 11:46:35+01:00, perex@suse.cz [ALSA] Add snd-ca0106 driver Documentation,PCI drivers,CA0106 driver Added snd-ca0106 driver for SB Audigy LS / Live 24bit boards by James Courtier-Dutton . Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.69, 2005-01-03 11:45:19+01:00, perex@suse.cz [ALSA] Add emu10k1x driver Documentation,PCI drivers,EMU10K1/EMU10K2 driver Added the new driver, snd-emu10k1x, for SB Live Dell OEM version by Francisco Moraes . Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.68, 2005-01-03 11:44:08+01:00, perex@suse.cz [ALSA] Allow strings for ac97_quirk options AC97 Codec Core,Intel8x0 driver,VIA82xx driver Since there are many ac97_quirk values, the number is no longer good to remember what it really means. Now ac97_quirk option becomes as a string option, and more undstandable. For example, you can pass like 'ac97_quirk=hp_only'. The old number is still kept and parsed for backward compatibility. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.67, 2005-01-03 11:42:58+01:00, perex@suse.cz [ALSA] Fix handling of user-defined controls Control Midlevel,ALSA Core Fixed handling of user-defined controls. The max number of user-defined controls is limited, too (as default 32). Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.66, 2005-01-03 11:41:53+01:00, perex@suse.cz [ALSA] Don't probe rates when bus->no_vra is set AC97 Codec Core Don't probe rates and set VRA/VRM bits when bus->no_vra is set. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.65, 2005-01-03 11:40:49+01:00, perex@suse.cz [ALSA] Use msleep() in ac97 callbacks CS46xx driver,NM256 driver Use msleep() instead of mdelay() in ac97 callbacks (spinlock was removed). Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.64, 2005-01-03 11:39:40+01:00, perex@suse.cz [ALSA] Spinlock removal and loop fix au88x0 driver Removed unnecessary spinlocks. The invalid (typo) loop in the codec read callback is fixed. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.63, 2005-01-03 11:38:37+01:00, perex@suse.cz [ALSA] Fix spinlocks FM801 driver Fixed the possible deadlock with no irq spinlock. Also, spin_lock_irqsave() is replaced with spin_lock_irq() in some places. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.62, 2005-01-03 11:37:31+01:00, perex@suse.cz [ALSA] Remove unnecessary ac97 spinlocks ATIIXP driver,ATIIXP-modem driver,ENS1370/1+ driver,Intel8x0 driver Intel8x0-modem driver,Maestro3 driver,VIA82xx driver VIA82xx-modem driver Removed unnecessary spinlocks in ac97 callbacks. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.61, 2005-01-03 11:36:22+01:00, perex@suse.cz [ALSA] Remove spinlock in callbacks AC97 Codec Core,AK4531 codec Removed spinlocks in callback, use sempahore instead since all ac97 callbacks are supposed to be non-atomic. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.60, 2005-01-03 11:35:15+01:00, perex@suse.cz [ALSA] Unify ac97 control callbacks AC97 Codec Core Unified single_* and double_* control callbacks. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.59, 2005-01-03 11:34:08+01:00, perex@suse.cz [ALSA] Replace long delays with msleep() au88x0 driver Long udelay()'s are replaced with msleep() as much as possible. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.58, 2005-01-03 11:33:00+01:00, perex@suse.cz [ALSA] Fix creation of control devices over udev Control Midlevel,ALSA Core Don't create control devices before the driver initialization finishes (ALSA BTS #742). The control device is now handled in the device list together with others (holding the card instance as the device pointer). Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.57, 2005-01-03 11:31:49+01:00, perex@suse.cz [ALSA] Add mute LED quirk AC97 Codec Core,Intel8x0 driver A new quirk type, AC97_TUNE_MUTE_LED, is added for HP/Compaq laptops. With this quirk, the EAPD bit is used to control the mute LED in conjunction with the master mute switch. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.56, 2005-01-03 11:30:44+01:00, perex@suse.cz [ALSA] Fix compile warning Wavefront drivers Fixed compile warning regarding the sign of char. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.55, 2005-01-03 11:29:35+01:00, perex@suse.cz [ALSA] Fix the wrong sign of format data entries PCM Midlevel Fix suggested by Benjamin Herrenschmidt On architectures like PPC, char is handled as 'unsigned char', thus the pcm_format_data table entries with -1 give a positive 255. This causes Oops with OSS-emulation on such architectures. The patch simply adds the right signed/unsigned prefix to fix this problem. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.54, 2005-01-03 11:28:17+01:00, perex@suse.cz [ALSA] Fix invalid 'AutoSync Reference' value RME HDSP driver The value returned by controllers for control number 14 ('AutoSync Reference') is incorrect and different from that reported by doing a cat /proc/asound/card0/hdsp. The value reported is not 'AutoSync Reference' but 'Preferred Sync Reference' instead. Signed-off-by: Remy Bruno Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.53, 2005-01-03 11:27:08+01:00, perex@suse.cz [ALSA] Add PCXHR hwdep iface type ALSA Core Added SNDRV_HWDEP_IFACE_PCXHR for Digigram PCXHR driver. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.52, 2005-01-03 11:25:59+01:00, perex@suse.cz [ALSA] Fix the invalid DMA pointer value PPC PMAC driver Fixed the bug returning invalid DMA pointer values. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.51, 2005-01-03 11:24:51+01:00, perex@suse.cz [ALSA] Fix compilation errors Digigram VX core,MIXART driver Fix compilation errors when built without hotplug fw loader. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.50, 2005-01-03 11:23:45+01:00, perex@suse.cz [ALSA] Fix CMI9739A silent problem AC97 Codec Core Fix by Zinx Verituse The patch for cmi9739a is added. The undocumented unmute bits are enabled. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.49, 2005-01-03 11:22:40+01:00, perex@suse.cz [ALSA] Fix interrupt generation on MIDI input for es1938 sound cards ES1938 driver The patch ensures that a es1938 based sound card generates interrupts on incoming MIDI events. I tested the patch successfully on an ess Solo-1 in a AlphaPC UX/164. Signed-off-by: Andreas Feldner Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.48, 2005-01-03 11:21:34+01:00, perex@suse.cz [ALSA] Add description about hotplug fw loader Documentation New descriptions about hotplug fw loader for vx and mixart drivers. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.47, 2005-01-03 11:20:24+01:00, perex@suse.cz [ALSA] Hotplug firmware loader support Digigram VX core,MIXART driver,Digigram VX222 driver Digigram VX Pocket driver The hogplut fw loader is supported by vxpocket, vxp440, vx2222 and mixart drivers. The old ALSA fw loader is still supported for built-in kernels. To use the hotplug, the new firmware data must be installed beforehand from the latest alsa-tools package. The experimental suspend/resume for vxpocket, vxp440 and vx222 are added, too. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.46, 2005-01-03 11:19:17+01:00, perex@suse.cz [ALSA] Fix memory corruption Digigram VX core Fixed the memory corruption by the wrong sized kmalloc. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.45, 2005-01-03 11:18:07+01:00, perex@suse.cz [ALSA] Return -EBADFD when the device is disconnected USB generic driver The trigger callback returns -EBADFD when the device is disconnected. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.44, 2005-01-03 11:17:01+01:00, perex@suse.cz [ALSA] Add volatile to IO pinters ALSA Core Add volatile prefix to IO pointers for copy_to_user_fromio() and copy_from_user_toio() functions. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.43, 2005-01-03 11:15:54+01:00, perex@suse.cz [ALSA] buffersize and constraints on pmac PPC PMAC driver Buffersize is a bit small compared to the OSS driver (dmasound.h says 128kb is limit for Amiga, for pmac 256kb is used) At least on Snapper, some samplerates cause choppy sound when periods<3 or buffersize is not a multiple of periodsize. Signed-off-by: Danny Tholen Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.42, 2005-01-03 11:14:41+01:00, perex@suse.cz [ALSA] Export snd_ctl_elem_read/write() functions Control Midlevel,ALSA Core,IOCTL32 emulation snd_ctl_elem_read() and snd_ctl_elem_write() functions are exported to be accessible from other kernel modules. They can be used for suspend/resume codes, for example. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.41, 2005-01-03 11:13:30+01:00, perex@suse.cz [ALSA] Clean up power-management Documentation,SA11xx UDA1341 driver,Control Midlevel,ALSA Core ES18xx driver,OPL3SA2 driver,AD1848 driver,CS4231 driver,ATIIXP driver ATIIXP-modem driver,CS4281 driver,ES1938 driver,ES1968 driver Intel8x0 driver,Intel8x0-modem driver,Maestro3 driver,VIA82xx driver VIA82xx-modem driver,ALI5451 driver,CS46xx driver,NM256 driver Trident driver,YMFPCI driver,Sound Core PDAudioCF driver PPC PMAC driver Clean up for PM code. snd_power_change() is called in the common routines instead of driver's callback. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.40, 2005-01-03 11:12:14+01:00, perex@suse.cz [ALSA] Midiman Delta DIO2496 has two stereo analog outs ICE1712 driver Signed-off-by: Jaroslav Kysela ChangeSet@1.1938.421.39, 2005-01-03 11:11:06+01:00, perex@suse.cz [ALSA] [trivial] Fix compile warning Intel8x0 driver Fix compile warning abount unused variables. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.38, 2005-01-03 11:09:59+01:00, perex@suse.cz [ALSA] Fix non-symmetrical page_attr changes Intel8x0 driver Fixed non-symmetrical calls of change_page_attr() which may cause BUG(). This bug happens only on 440MX. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.37, 2005-01-03 11:08:53+01:00, perex@suse.cz [ALSA] Add missing USX2Y_PCM hwdep entry ALSA Core Added the missing SNDRV_HWDEP_IFACE_USX2Y_PCM definition. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.36, 2005-01-03 11:07:46+01:00, perex@suse.cz [ALSA] Add missing source codes in the last hwdep-pcm patch. USB USX2Y The missing source files in the last hwdep-pcm patch are added. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.35, 2005-01-03 11:06:35+01:00, perex@suse.cz [ALSA] hwdep interface for pcm data USB,USB USX2Y Implements 'rawusb' pcm data transfer through hwdep interface: The usb_hc moves pcm data from/into memory via DMA. That memory is mmaped by jack's usx2y driver. Jack's usx2y driver is the first/last executable code to read/write pcm data. Read/write is a combination of power of 2 period shaping and float/int conversation. Compared to standard alsa/jack we leave out power of 2 period shaping inside snd-usb-usx2y which needs memcpy() and additional buffers. As a side effect possible unwanted pcm-data coruption resulting of standard alsa's snd-usb-usx2y period shaping scheme falls away. Result is sane jack operation at buffering schemes down to 128frames, 2 periods. Also changed Kconfig file, so snd-usb-usx2y is only available for X86, PPC or ALPHA platforms, as on others DMA-memory isn't mmapable. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.34, 2005-01-03 11:05:24+01:00, perex@suse.cz [ALSA] Fix detection of Xbox AC97 Codec Core Unfortunately, on newer xboxes, the chip reports less info than before, making another change necessary - this change is backwards compatible, and doesn't break earlier xboxes, of course. The patch is originally from Ed Hucek . Signed-off-by: David Pye Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.33, 2005-01-03 11:04:20+01:00, perex@suse.cz ALSA CVS update ENS1370/1+ driver Trivial patch to enable rear out selection for ens1373 on the Gigabyte GA-8IEXP motherboard. Signed-off-by: Andrew Dennison Signed-off-by: Jaroslav Kysela ChangeSet@1.1938.421.32, 2005-01-03 11:03:12+01:00, perex@suse.cz [ALSA] misc cleanups OPL3,Digigram VX core,I2C cs8427,SoundFont,Common EMU synth The patch below contains the following changes in ALSA code not touched by my previous patches: - make some needlessly global code static - remove the following unused global functions: - sound/i2c/cs84: snd_cs8427_detect - sound/synth/emux/emux_synth.c: snd_emux_release_voice - sound/synth/emux/soundfont.: snd_soundfont_mem_used - remove the following unused EXPORT_SYMBOL's: - sound/i2c/cs8427.c: snd_cs8427_detect - sound/i2c/cs8427.c: snd_cs8427_reg_read Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.31, 2005-01-03 11:02:01+01:00, perex@suse.cz [ALSA] Add 'Duplicate Front' control CS46xx driver A new mixer control 'Duplicate Front' is added for the board with a single codec. This toggles the duplication of front signal to the rear speakers. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.30, 2005-01-03 11:00:47+01:00, perex@suse.cz [ALSA] opl4 depends on opl3 OPL3 Compiling OPL4 doesn't include the snd-opl3-lib. This change in the Makefile enables now the compiling of snd-opl3-lib.o for OPL4 soundcards. Signed-off-by: Martin Langer Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.29, 2005-01-03 10:59:39+01:00, perex@suse.cz [ALSA] Update user-space access from sscape driver Sound Scape driver I see that the copy_to/from_user() functions have been updated across Linux 2.4 and 2.6, and that verify_read/write() has been replaced by access_ok(). I have patched the SoundScape driver accordingly. Signed-off-by: Chris Rankin Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.28, 2005-01-03 09:19:11+01:00, perex@suse.cz [ALSA] disable legacy IRQs before request_irq() to avoid unhandled interrupts VIA82xx driver Signed-off-by: Christian Koerner Signed-off-by: Jaroslav Kysela ChangeSet@1.1938.421.27, 2005-01-03 09:18:06+01:00, perex@suse.cz [ALSA] IEC958 Capture mixer controls and Universe support ICE1712 driver,ICE1724 driver * Added SPI read routine * Added IEC958 Capture mixer controls * Improved Universe support * Headphone Amp renamed to External Amplifier * Fixed GPIO bug in Prodigy code (There is no GPIO23 on ICE1724) Signed-off-by: Peter Christensen Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.26, 2005-01-03 09:17:03+01:00, perex@suse.cz [ALSA] Fix sleep in h/w volume control ES1968 driver Fixed sleeps in h/w volume control tasklet. Also, msleep()s in ac97 accessor callbacks are removed since the chip works without such delays. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.25, 2005-01-03 09:15:56+01:00, perex@suse.cz [ALSA] Use macro usb_maxpacket() for portability USB USX2Y In future kernels struct usb_device won't have the epmaxpacketin/out members. Use macro usb_maxpacket() instead of directly accessing those members. Signed-off-by: Karsten Wiese Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.24, 2005-01-03 09:14:44+01:00, perex@suse.cz [ALSA] Remove the NULL pointer check in kfree/vfree wrappers ALSA Core The check of NULL pointer in kfree/vfree wrappers is removed. kfree() and vfree() accept NULL pointer. Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.23, 2005-01-03 09:13:42+01:00, perex@suse.cz [ALSA] Added VIA82xx-modem driver Documentation,PCI drivers,VIA82xx-modem driver Added the VIA82xx AC97 modem driver by Sasha Khapyorsky . Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.22, 2005-01-03 09:12:28+01:00, perex@suse.cz [ALSA] ALSA core: misc cleanups HWDEP Midlevel,ALSA Core,PCM Midlevel,RawMidi Midlevel ALSA<-OSS emulation,ALSA sequencer,ALSA<-OSS sequencer The patch below does the following cleanups under sound/core/ : - make needlessly global code static - remove the following stale prototypes from pcm.h (the functions are not or no longer present): - snd_pcm_capture_ready_jiffies - snd_pcm_playback_ready_jiffies - remove the following unused global functions: - oss/pcm_plugin.c: snd_pcm_plug_capture_channels_mask - seq/seq_instr.c: snd_seq_cluster_new - seq/seq_instr.c: snd_seq_cluster_free - move global to static inline functions - pcm_lib.c: snd_pcm_playback_ready - pcm_lib.c: snd_pcm_capture_ready - pcm_lib.c: snd_pcm_playback_empty - pcm_lib.c: snd_pcm_capture_empty - pcm_lib.c: snd_pcm_playback_data - remove the following unused EXPORT_SYMBOL's: - snd_create_proc_entry - snd_interval_ratden - snd_midi_channel_init - snd_midi_channel_init_set - snd_pcm_playback_empty - snd_pcm_capture_empty - snd_pcm_playback_data - snd_pcm_capture_poll - snd_pcm_playback_ready - snd_pcm_capture_ready - snd_pcm_format_size - snd_pcm_open - snd_pcm_playback_poll - snd_pcm_playback_ready - snd_pcm_release - snd_pcm_subformat_name - snd_remove_proc_entry Signed-off-by: Adrian Bunk Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.21, 2005-01-03 09:11:10+01:00, perex@suse.cz [ALSA] check __copy_to_user in sscape_upload_bootblock() Sound Scape driver __copy_to_user() is called without checking its return value in sound/isa/sscape.c::sscape_upload_bootblock . Signed-off-by: Jesper Juhl Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.20, 2005-01-03 09:10:09+01:00, perex@suse.cz [ALSA] ifdef typos: sound_isa_es18xx.c ES18xx driver Changed CONFIG_PNP_ to CONFIG_PNP, also fixed a comment related to another CONFIG_PNP. Signed-off-by: Domen Puncer Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.19, 2005-01-03 09:08:30+01:00, perex@suse.cz [ALSA] ifdef typos: sound_isa_cs423x_cs4231_lib.c CS4231 driver Funny typo. Acked-by: Randy Dunlap Signed-off-by: Domen Puncer Signed-off-by: Maximilian Attems Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.18, 2005-01-03 09:06:34+01:00, perex@suse.cz [ALSA] Fix interface type for some mixer controls RME96 driver The interface type of some basic mixer controls is changed from IFACE_PCM to IFACE_MIXER so that it can be accessed from mixer apps. Signed-off-by: Peter Chrisensen Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.17, 2005-01-03 09:04:45+01:00, perex@suse.cz [ALSA] Fix the interface type of mixer controls RME32 driver The patch will change SNDRV_CTL_ELEM_IFACE_PCM to SNDRV_CTL_ELEM_IFACE_MIXER for some mixer elements of rme32. Signed-off-by: Martin Langer Signed-off-by: Takashi Iwai ChangeSet@1.1938.421.16, 2005-01-03 09:03:11+01:00, perex@suse.cz [ALSA] [trivial] Fix compilation warnings on 64bit SPARC cs4231 driver Fixed the compilation warnings about the pointer size. Signed-off-by: Takashi Iwai ChangeSet@1.1938.1.198, 2005-01-02 17:51:04-08:00, nickpiggin@yahoo.com.au [PATCH] ia64 4-level pgtable fix Fix a 4-level page table bug that slipped through (introduced by me, not Andi). Compiles and boots on ia64 and 2-level i386. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.197, 2005-01-02 17:49:03-08:00, torvalds@evo.osdl.org x86 single-step: fix up comments and cleanup. Pretty much all the TF-related comments were stale, and had been for a long time. Fix them up, clean up code. ChangeSet@1.1938.1.196, 2005-01-02 17:17:29-08:00, torvalds@ppc970.osdl.org x86 ptrace: remove long stale (and bitrotted) test for PT_DTRACE without PT_PTRACED. Long ago, the "D" in PT_DTRACE meant "Delayed", and it was used as a flag to mark that we had ptrace'd the process but no longer did so. That hasn't been true in a while now, and the flag should probably be renamed, but in the meantime the test for PT_PTRACED being cleared had been corrupted into something totally nonsensical. Pointed out by Andi Kleen. ChangeSet@1.1938.471.1, 2005-01-02 20:27:25+00:00, rmk@flint.arm.linux.org.uk [MMC] Fix UNSTUFF_BITS Quieten down compiler warnings, and fix an off-by-one bug when deciding whether to include the next word. ChangeSet@1.1938.464.13, 2005-01-02 20:19:07+00:00, rmk@flint.arm.linux.org.uk [ARM] Add DMA mmap support for SA1100/PXA framebuffer drivers. Since the framebuffers are allocated via dma_alloc_writecombine() we should use the DMA mmap interface to map these buffers. Signed-off-by: Russell King ChangeSet@1.1938.460.9, 2005-01-02 21:17:55+01:00, kaos@ocs.com.au kallsyms: Avoid kallsyms corner case on _etext and _einittext Avoid kallsyms corner case on _etext and _einittext with CONFIG_KALLSYMS_ALL=n. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.1.193, 2005-01-02 11:45:13-08:00, torvalds@evo.osdl.org acpi video device enumeration: fix incorrect device list allocation It didn't allocate space for the final terminating entry, which caused it to overwrite the next slab entry, which in turn sometimes ended up being a slab array cache pointer. End result: total slab cache corruption at a random time afterwards. Very nasty. ChangeSet@1.1938.1.192, 2005-01-02 10:49:42-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] diskonchip missing iomem annotations some trivial iomem annotations were still missing Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.191, 2005-01-02 10:49:27-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] pc300 portability fixes local variable used to store flags after spin_lock_irqsave() should be unsigned long, not u32. That should complete the 64bit cleanups in there. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.190, 2005-01-02 10:49:14-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc uaccess annotations - get_user() __gu_val should be unsigned long (same as with i386 patch) - __copy_to_user() et.al. didn't have proper type checking - documented the casts in __copy_tofrom_user() calls with __force. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.189, 2005-01-02 10:47:03-08:00, rusty@rustcorp.com.au [PATCH] Fix cleanup path when sysctl registration fails nfsim gains sysctl support, and sure enough, --failtest uncovered an unregister when the registration had failed. Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.188, 2005-01-02 10:46:04-08:00, rusty@rustcorp.com.au [PATCH] Fix proc removal in ip_conntrack_standalone Someone thought it would be clever if proc code ignores removal of non-existent entries. Hence, we missed that /proc/net/stat/ip_conntrack is never removed on module removal or init failure. Found by nfsim. Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.187, 2005-01-02 09:49:29-08:00, rddunlap@osdl.org [PATCH] parport_pc: don't mix module parameter styles Somehow parport_pc.c ended up with mixed old-style and new-style module parameters, but mixing them is not allowed. Use module_param() instead of MODULE_PARM() -- cannot be mixed. Signed-off-by: Randy Dunlap Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.186, 2005-01-02 09:49:16-08:00, wli@holomorphy.com [PATCH] sparc32: fix blank screen problem in cg6.c Although the CG6 framebuffer is detected and initialized, without this patch all it displays is a blank screen. Tested on an Ultra 1 with a TGX+. Originally from Bob Breuer for the CG14. Signed-off-by: Adam Kropelin Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.185, 2005-01-02 09:49:03-08:00, wli@holomorphy.com [PATCH] sparc32: remove conflicting definition of _exit() sparc32 had a conflicting _exit, removed the line from asm- sparc/unistd.h. This is the same change that DaveM made to sparc64 here: http://linux.bkbits.net:8080/linux-2.6/diffs/include/asm- sparc64/unistd.h@1.33 Warning was: In file included from include/linux/unistd.h:9, from init/main.c:45: include/asm/unistd.h:489: warning: conflicting types for built-in function '_exit' Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.184, 2005-01-02 09:48:52-08:00, wli@holomorphy.com [PATCH] sparc32: fix incomplete irqreturn_t sweep in include/asm-sparc/floppy.h Squelch the floppy compile warning: include/asm/floppy.h: In function `sun_fd_request_irq': include/asm/floppy.h:276: warning: passing arg 2 of `request_fast_irq' from incompatible pointer type Signed-off-by: Tom 'spot' Callaway Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.183, 2005-01-02 09:48:39-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing handling for VM fault codes Fix missing cases for vm fault codes in sparc32 fault handling, and convert the entire file to using symbolic fault codes. This fixes a latent bug where an allocation failure returns to the kernel instead of delivering an error as expected. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.182, 2005-01-02 09:48:26-08:00, wli@holomorphy.com [PATCH] sparc32: fix sbus rtc warnings Add a sparc #ifdef to drivers/char/rtc.c and iomem annotations to drivers/sbus/char/rtc.c Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.181, 2005-01-02 09:48:13-08:00, wli@holomorphy.com [PATCH] sparc32: unused variable in sunsu.c serio is unused except in the #ifdef CONFIG_SERIO paths. To kill the warning, make the declaration conditional on the same. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.180, 2005-01-02 09:48:00-08:00, wli@holomorphy.com [PATCH] sparc32: arch/sparc/kernel/pcic.c iomem annotations arch/sparc/kernel/pcic.c trips numerous warnings due to iomem annotations. This patch adds various needed iomem annotations. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.179, 2005-01-02 09:47:47-08:00, wli@holomorphy.com [PATCH] sparc32: fix missing return value for svr4_setcontext() sparc32 svr4_setcontext() needs to return a value in the SIGSEGV path. Signed-off-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.178, 2005-01-02 09:47:34-08:00, wli@holomorphy.com [PATCH] sparc32: fix initrd memcpy problem The latter hunk of the forwarded patch has already been applied, so please apply the patch as it appears in the un-forwarded part. I've taken some liberties in adding the Acked/Signed-off lines in what I hope is an agreeable way. On Sun, Nov 14, 2004 at 11:16:40PM -0500, Jurij Smakov wrote: > As a followup: I have tried fiddling more with the memcpy() routine. > Insight from Rob Radez and comments in arch/sparc/lib/blockops.S suggest, > that __copy_1page assumes that the memory regions copied are aligned on a > double-word boundary. I have checked, that in the cramfs case it wasn't > true, the destination was not aligned on the double-word boundary. So, I > have implemented a simple workaround (see patch below), which together > with Bob Breuer's iommu.c fix [0] made 2.6.8 kernel to boot on my > machine (SS10 with Ross Hypersparc CPU)! I also confirm, that adding the > suggested fix to the srmmu.c also [1] breaks sunlance on my machine. With > that "fix" the line 'eth0: Memory error, status 88c3, addr 3713ba' is > displayed continuously during boot, when it comes to configuring network > interfaces. The successful patch for me is: Acked-by: William Irwin Acked-by: Dave Miller Signed-off-by: Jurij Smakov Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.177, 2005-01-02 09:47:21-08:00, wli@holomorphy.com [PATCH] sparc32: sun4d update Chris Newport and Thomas Bogendoerfer have been working to get the sun4d port functional again. This patch updates 2.6.10-rc3 to a current snapshot of their work. It does the following 3 things: (1) add sun4d hook to sbus_bus_ranges_init() (2) fix up pgd_offset() call in sun4d iommu code (3) fix up sun4d's definition of current Signed-off-by: Chris Newport Signed-off-by: Thomas Bogendoerfer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.176, 2005-01-02 09:47:08-08:00, wli@holomorphy.com [PATCH] sparc32: fix hypersparc dvma DVMA is having aliasing problems. Bob originally sent in the following description: At some point in the past, Bob Breuer wrote: > Here's the preliminary patch. This time around, both the hme > and esp drivers are working for me. This replaces my previous > patch and is against the vanilla 2.6.9 kernel. I've tried to > reduce the amount of unnecessary cache flushing, therefore this > will need some testing on non-hypersparc cpus also. It needs > some cleanup yet, and will be rediffed against a later kernel. > I'm looking for comments and feedback. This patch represents one of those subsequent rediffings. Signed-off-by: Bob Breuer Acked-by: William Irwin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.175, 2005-01-02 09:46:55-08:00, akpm@osdl.org [PATCH] floppy build fix drivers/block/floppy.c: In function `init_module': drivers/block/floppy.c:4598: error: parse error before "UTS_RELEASE" Not sure what went wrong here - just kill the thing. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.174, 2005-01-02 09:46:42-08:00, akpm@osdl.org [PATCH] fix inet6_sk for non IPV6 builds again The recent ipv6 "fix" broke the build: security/selinux/avc.c: In function `avc_audit': security/selinux/avc.c:581: warning: implicit declaration of function `inet6_sk' security/selinux/avc.c:581: warning: initialization makes pointer from integer without a cast Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.173, 2005-01-02 09:46:29-08:00, michal@logix.cz [PATCH] Add Michal Ludvig to CREDITS Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.172, 2005-01-02 09:46:16-08:00, michal@logix.cz [PATCH] VIA PadLock compilation fixes This patch contains two fixes for VIA PadLock compilation with GCC 2.95.3 and GCC 3.4.3 (original patch was tested with 3.3.4 only). Signed-off-by: Michal Ludvig Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.171, 2005-01-02 09:46:03-08:00, akpm@osdl.org [PATCH] ia64 PTRS_PER_PGD build fix mm/memory.c:1944:6: missing binary operator before token "long" The preprocessor doesn't like the typecast.... PTRS_PER_PGD isn't used in assembly code, so this looks to be safe enough.. This patch helps, but the ia64 build is still broken. There is no implementation of __pmd_alloc(). Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.170, 2005-01-02 09:45:50-08:00, akpm@osdl.org [PATCH] sparc64 pmd_offset() fix mm/memory.c: In function `zeromap_pud_range': mm/memory.c:1053: warning: suggest parentheses around + or - inside shift mm/memory.c: In function `remap_pud_range': mm/memory.c:1170: warning: suggest parentheses around + or - inside shift Parenthesize this macro arg. Cc: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.169, 2005-01-02 09:45:38-08:00, akpm@osdl.org [PATCH] setup_pci.c build fix On sparc64: drivers/ide/setup-pci.c:310: error: `DMA_32BIT_MASK' undeclared (first use in this function) drivers/ide/setup-pci.c:310: error: (Each undeclared identifier is reported only once drivers/ide/setup-pci.c:310: error: for each function it appears in.) Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.168, 2005-01-02 09:40:33-08:00, rusty@rustcorp.com.au [PATCH] ipt_ECN corrupt checksum fix Nasty bug, caught while writing the ECN target test. Corrupts checksums of packets when target is used on them. Let this be a warning on the evils of casts. Signed-off-by: Linus Torvalds ChangeSet@1.1938.470.1, 2005-01-02 20:08:59+11:00, airlied@starflyer.(none) drm: mark ffb as broken because it actually is The ffb driver has been broken since 2.6.8 at least, so mark it as so. This also contains some fixes so it at least compiles. Signed-off-by: Dave Airlie ChangeSet@1.1938.1.167, 2005-01-01 14:02:07-08:00, ak@suse.de [PATCH] convert x86_64 to 4 level page tables Converted to true 4levels. The address space per process is expanded to 47bits now, the supported physical address space is 46bits. Lmbench fork/exit numbers are down a few percent because it has to walk much more pagetables, but some planned future optimizations will hopefully recover it. See Documentation/x86_64/mm.txt for more details on the memory map. Signed-off-by: Andi Kleen Converted to pud_t by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.166, 2005-01-01 14:01:54-08:00, nickpiggin@yahoo.com.au [PATCH] convert ia64 to generic nopud header Convert ia64 architecture over to handle 4 level pagetables. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.165, 2005-01-01 14:01:39-08:00, ak@suse.de [PATCH] convert i386 to generic nopud header i386 works with 2 and 3 levels Signed-off-by: Andi Kleen Converted to use pud_t by Nick Piggin Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.164, 2005-01-01 14:01:24-08:00, nickpiggin@yahoo.com.au [PATCH] introduce fallback header Add a temporary "fallback" header so architectures can run with the 4level patgetables patch without modification. All architectures should be converted to use the folding headers (include/asm-generic/pgtable-nop?d.h) as soon as possible, and the fallback header removed. Make all architectures include the fallback header, except i386, because that architecture has earlier been converted to use pgtable-nopmd.h under the 3 level system, which is not compatible with the fallback header. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.163, 2005-01-01 14:01:09-08:00, ak@suse.de [PATCH] convert Linux to 4-level page tables Extend the Linux MM to 4level page tables. This is the core patch for mm/*, fs/*, include/linux/* It breaks all architectures, which will be fixed in separate patches. The conversion is quite straight forward. All the functions walking the page table hierarchy have been changed to deal with another level at the top. The additional level is called pml4. mm/memory.c has changed a lot because it did most of the heavy lifting here. Most of the changes here are extensions of the previous code. Signed-off-by: Andi Kleen Converted by Nick Piggin to use the pud_t 'page upper' level between pgd and pmd instead of Andi's pml4 level above pgd. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.162, 2005-01-01 14:00:55-08:00, nickpiggin@yahoo.com.au [PATCH] introduce 4-level nopud folding header Generic headers to fold the 4-level pagetable into 3 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.161, 2005-01-01 14:00:42-08:00, nickpiggin@yahoo.com.au [PATCH] replace clear_page_tables with clear_page_range Rename clear_page_tables to clear_page_range. clear_page_range takes byte ranges, and aggressively frees page table pages. Maybe useful to control page table memory consumption on 4-level architectures (and even 3 level ones). Possible downsides are: - flush_tlb_pgtables gets called more often (only a problem for sparc64 AFAIKS). - the opportunistic "expand to fill PGDIR_SIZE hole" logic that ensures something actually gets done under the old system is still in place. This could sometimes make unmapping small regions more inefficient. There are some other solutions to look at if this is the case though. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.160, 2005-01-01 14:00:27-08:00, ak@suse.de [PATCH] split copy_page_range Split copy_page_range into the usual set of page table walking functions. Needed to handle the complexity when moving to 4 levels. Signed-off-by: Andi Kleen Split out from Andi Kleen's 4level patch by Nick Piggin. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.159, 2005-01-01 14:00:15-08:00, nickpiggin@yahoo.com.au [PATCH] convert i386 to generic nopmd header Adapt the i386 architecture to use the generic 2-level folding header. Just to show how it is done. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.158, 2005-01-01 14:00:01-08:00, nickpiggin@yahoo.com.au [PATCH] generic 3-level nopmd folding header Generic headers to fold the 3-level pagetable into 2 levels. Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.157, 2005-01-01 13:59:48-08:00, nickpiggin@yahoo.com.au [PATCH] parentheses to x86-64 macro Add parentheses to x86-64's pgd_index's arguments Signed-off-by: Nick Piggin Signed-off-by: Linus Torvalds ChangeSet@1.1938.1.156, 2005-01-01 13:47:42-08:00, torvalds@evo.osdl.org x86: single-step over "popf" without corrupting state. This still leaves "pushf" able to see that somebody is single-stepping us, but that is at least something you can work around. ChangeSet@1.1938.1.155, 2005-01-01 13:11:08-08:00, torvalds@evo.osdl.org x86: be a lot more careful about TF handling. This should fix Wine for some games that otherwise seem to think that they run under a debugger. ChangeSet@1.1938.1.154, 2005-01-01 12:24:01-08:00, torvalds@evo.osdl.org x86: common send_sigtrap helper for debug event SIGTRAP's, and use that for system call single-step events. This one also gets the user mode test right, and makes sure the siginfo is not leaking any stack contents. ChangeSet@1.1938.1.153, 2005-01-01 12:21:12-08:00, torvalds@evo.osdl.org Now that sparse looks into asms, fix the fake anti-optimizer cast macro to use the right address space. ChangeSet@1.1938.469.3, 2005-01-01 19:02:55+00:00, rmk@flint.arm.linux.org.uk [ARM] Remove static mapping for RTC on Integrator/AP ChangeSet@1.1938.469.2, 2005-01-01 18:08:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Update Integrator RTC driver. This updates the Integrator RTC driver to use the ARM common RTC interface, and converts the driver to behave as a standard AMBA peripheral driver. ChangeSet@1.1938.469.1, 2005-01-01 16:29:07+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2338/1: IXP465 and IXDPG465 header file updates Patch from Deepak Saxena Update IXP4xx header files with new registers for IXP46x CPU family. Replaces 2306/1 Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.1.152, 2005-01-01 23:20:59+11:00, airlied@starflyer.(none) drm: core changes broke i810/830 Reported by Joseph Fannin during -mm, revert incorrect change. Signed-off-by: Dave Airlie ChangeSet@1.1938.1.151, 2004-12-31 18:36:38+11:00, airlied@starflyer.(none) drm: make reclaim_buffers take dev argument Allow drivers to override reclaim_buffers in an OS-independent way by passing drm_device_t* as first parameter, like in the BSD version. From: Felix Kuehling Signed-off-by: Dave Airlie ChangeSet@1.1938.1.150, 2004-12-31 18:24:53+11:00, airlied@starflyer.(none) drm: use spin_lock_init instead of SPIN_LOCK_UNLOCKED From: Jon Smirl Signed-off-by: Dave Airlie ChangeSet@1.1938.1.149, 2004-12-31 18:18:54+11:00, airlied@starflyer.(none) drm: correct historic mis-attribution of copyright From: Keith Withwell Signed-off-by: Dave Airlie ChangeSet@1.1938.1.148, 2004-12-31 18:15:21+11:00, airlied@starflyer.(none) Make 1-bit fields be unsigned (no sign bit :). sparse complains about them: drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed bitfield drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit signed bitfield Signed-off-by: Randy Dunlap Signed-off-by: Dave Airlie ChangeSet@1.1938.468.1, 2004-12-31 12:46:36+11:00, airlied@starflyer.(none) drm: Use wbinvd macro instead of assembly for it, From: Stefan Dirsch Signed-off-by: Dave Airlie ChangeSet@1.1938.467.3, 2004-12-31 00:26:38+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2307/1: Add IXP46x and IXDPG465 implementation Patch from Deepak Saxena Patch adds implementation details for IXP46x CPUs and new IXDPG465 reference platform. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.467.2, 2004-12-31 00:20:31+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2339/1: Don't mask IRQ_STATUS with IXP2000_VALID_IRQ_MASK Patch from Deepak Saxena Supersedes 2226/1 According to the IXP Programmer's Reference Manual, a read from IRQ_STATUS can only return '1' for IRQ sources that have been explicitly enabled in IRQ_ENABLE. So if we never enable 'invalid' IRQ sources, we don't actually have to mask off IRQ_STATUS with IXP2000_VALID_IRQ_MASK. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.467.1, 2004-12-31 00:14:52+00:00, rmk@flint.arm.linux.org.uk [ARM] Add missing end of comment. ChangeSet@1.1938.464.12, 2004-12-31 00:03:58+00:00, rmk@flint.arm.linux.org.uk [ARM] Add CLCD driver mmap method and callbacks. Convert CLCD driver such that boards can use the dma_mmap_*() interfaces where appropriate. Signed-off-by: Russell King ChangeSet@1.1938.1.145, 2004-12-30 15:23:01-08:00, torvalds@ppc970.osdl.org Merge bk://bart.bkbits.net/ide-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.1.144, 2004-12-30 15:21:16-08:00, acme@conectiva.com.br [PATCH] Fix net/core/sock.o build failure This fixes a build failure that happens when you don't select IPV6. Signed-off-by: Linus Torvalds ChangeSet@1.1938.461.11, 2004-12-30 22:40:35+01:00, bzolnier@trik.(none) [patch] Intel ICH7 DID's, PIRQ and PATA support From: Jason Gaston This patch adds the Intel ICH7 DID's to the pci_ids.h file and updates the piix driver and related files for PATA support. bart: this patch also adds PIRQ support Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.10, 2004-12-30 20:29:23+01:00, bzolnier@trik.(none) [ide] make host drivers aware of the changes made to ide_setup_pci_device{s} - nothing clever here: the most noticeable change is the change of returned value for (*init_setup) in struct ide_pci_device_s which goes from void to int. Anything else is editing and checking for errors in the output of the compiler; - pci_disable_device() added for the error path in pci_init_sgiioc4(); - BUG() removed in amd74xx_probe(): good old printk() is enough. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.9, 2004-12-30 20:16:30+01:00, bzolnier@trik.(none) [ide] propagate the error status in ide_pci_enable/ide_setup_pci_controller - no need to overwrite the status code returned by the pci_xyz() functions; - jump into the new century and use DMA_32BIT_MASK; - misc cleanup in the error paths. It should not add a huge value in ide_pci_enable() due to the FIXME comment but it should not bite too hard either. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.8, 2004-12-30 20:08:53+01:00, bzolnier@trik.(none) [ide] clean up error path in do_ide_setup_pci_device() ide_setup_pci_controller() puts the device in a PCI enabled state. The patch adds a small helper to balance it when things go wrong. Actually the helper does not *exactly* balance the setup: if it can not do a better job, ide_setup_pci_controller() may only enable some BARS whereas the new counterpart will try to disable everything. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.7, 2004-12-30 19:26:14+01:00, bzolnier@trik.(none) [ide] propagation of error code in PCI IDE setup - Change the return value and the prototype of do_ide_setup_pci_device Due to lack of appropriate return status code, the current clients of do_ide_setup_pci_device() can not distinguish a failing invocation from a successfull one. The patch modify do_ide_setup_pci_device() so that it can propagate some of the errors from the lower layers. - Make ide_setup_pci_device() aware of the change and propagate the news itself. I only gave a quick sight to create_proc_ide_interfaces() (and ide_remove_proc_entries()) but they do seem sane and it should not matter if it fails or not. - ide_setup_pci_devices(): mostly the same thing than ide_setup_pci_device(). do not look trivially suspect. Signed-off-by: Francois Romieu Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.6, 2004-12-30 19:07:00+01:00, bzolnier@trik.(none) [ide] fix return codes in the generic PCI IDE driver From: Alan Cox This patch updates ide/pci/generic.c to fix the incorrect returns causing PCI devices to be left reserved wrongly by the driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.5, 2004-12-30 19:00:56+01:00, bzolnier@trik.(none) [ide] it8172: incorrect return from it8172_init_one() From: Alan Cox Several IDE drivers return positive values as errors in the PCI setup code. Unfortunately the PCI layer considers positive values as success so the driver skips the device but still claims it and things then go downhill. This fixes the IT8172 driver. From: Francois Romieu Use -ENODEV instead of -EAGAIN. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.464.11, 2004-12-30 16:55:25+00:00, rmk@flint.arm.linux.org.uk [ARM] Add DMA mmap() support. This adds DMA mmap() support for the ARM architecture, as discussed around March 2003 on the linux-arch and linux-kernel mailing lists. Subsystems such as ALSA (for sample ring buffers) and video drivers (for framebuffers in system memory) require this infrastructure to provide userspace with an architecture clean method to mmap these memory areas. Signed-off-by: Russell King ChangeSet@1.1938.464.10, 2004-12-29 17:32:38-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] i386 uaccess annotations get_user() stores result in a local variable that later gets cast to integer or pointer type. The proper type for that is unsigned long. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.461.4, 2004-12-29 23:21:55+01:00, bzolnier@trik.(none) [ide] fix cleanup_module() in ide.c DMA should be already released by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.3, 2004-12-29 23:11:22+01:00, bzolnier@trik.(none) [ide] ide-proc: kill destroy_proc_ide_interfaces() /proc interface entries should be already unregistered by ide_unregister() (unless interface is still busy). Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.464.8, 2004-12-29 21:00:56+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2327/1: Thumb ld/st alignment fault fixups Patch from George G. Davis Adds support for Thumb ld/st alignment fault fixups via conversion of Thumb ld/st instruction forms into equivalent ARM instructions and reusing ARM alignment fault handler for Thumb instructions. This implementation was inspired by and initially based on the algorithm found in gdb/sim/arm/thumbemu.c. I've backed out the silly 'T' suffix on PC in this version as requested by RMK. At this point, I prefer to avoid making any of the other changes discussed, e.g. dump_instr() for bad instruction cases, in order to get the basic Thumb support change committed. Thanks! Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.1938.464.7, 2004-12-29 20:39:53+00:00, tony@com.rmk.(none) [ARM PATCH] 2336/1: OMAP update 1/2: Arch files, take 2 Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The highlights of the patch are: - Add OMAP board specific low-level init functions for smc91x Ethernet - DMA audio functions by Nishant Menon - Remove references to OMAP specific serial.h This is an updated version of ARM patch 2331/1 with extra comments added to the omap_get_dma_src_pos() and omap_get_dma_dst_pos() functions as recommended by RMK. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.465.15, 2004-12-29 10:43:28-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_addr ->cfg_addr is an iomem pointer; annotated as such, setup_indirect_pci() cleaned up. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.14, 2004-12-29 10:43:15-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - openpic Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.13, 2004-12-29 10:43:02-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - gg2 gg2_pci_config_base is an iomem pointer. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.12, 2004-12-29 10:42:49-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc __iomem annotations - ->cfg_data struct pci_controller ->cfg_data annotated as iomem pointer; users modified accordingly... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.11, 2004-12-29 10:42:36-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] av7110_hw __user annotations fix Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.10, 2004-12-29 10:42:23-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] dib3000 portability fix size_t is %zd, not %d... Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.9, 2004-12-29 10:42:10-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] tda80xx.c portability fix should include asm/irq.h, not linux/irq.h Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.8, 2004-12-29 10:41:57-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] more isa-ectomy switch to ioremap + normal iomem access primitives Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.7, 2004-12-29 10:41:44-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] hotplug NULL noise removal Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.6, 2004-12-29 10:41:31-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] ppc io.h annotations * prototypes converted to standard ones * bunch of useless casts killed in ioread*/iowrite* Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.5, 2004-12-29 10:41:18-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] x86_64 io.h annotations x86-64 memcpy_toio(), memcpy_fromio(), memset_io() and read{b,w,l,q}(), switched to standard prototypes. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.4, 2004-12-29 10:41:06-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] cinergy __user annotations __user annotations in new code. Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.3, 2004-12-29 10:40:52-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] mxser annotations and compile fixes a) __user annotations b) NULL noise removals c) added missing ifdef CONFIG_PCI around the loop over mxser_pcibrds during init. d) declaration of CMSPAR in case if it had been undefined moved up prior to the first use Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.2, 2004-12-29 10:40:39-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] zatm fix Repairs the breakage introduced in gcc4 fixes. Original had expanded to ((struct zatm_dev *)(dev)->dev_data) = zatm_dev; and that's what gcc4 had complained about (cast-as-lvalue). Proper fix is, of course, dev->dev_data = zatm_dev; What we have in 2.6.10 is dev = (struct atm_dev *)zatm_dev; which doesn't cause complaints, but doesn't do anything good (leak + corruption at the very least). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.465.1, 2004-12-29 10:40:24-08:00, viro@parcelfarce.linux.theplanet.co.uk [PATCH] affs headers cleanup kernel-only stuff moved from affs headers in include/linux to fs/affs/affs.h; includes in fs/affs/*.c sanitized. That's the patch that had been ACKed by Roman + move of function-like macros from amigaffs.h (also ACKed) + removal of ancient #if 0'ed junk from declaration of affs_inode_info (spotted and suggested by Roman). Signed-off-by: Al Viro Signed-off-by: Linus Torvalds ChangeSet@1.1938.462.6, 2004-12-29 09:13:40-08:00, matthew@wil.cx [IA64] Enable ForteMedia in zx1 defconfig Patch from Matthew Wilcox: The FM801 chip is built-in to the zx2000 workstation. There's a lot of noise in the patch because the defconfig hasn't been updated in a few releases. Tony> I tweaked a couple of other CONFIG options (enabled MCA_RECOVERY and TMPFS_XATTR, disabled TCPDIAG). Signed-off-by: Tony Luck ChangeSet@1.1938.463.2, 2004-12-29 10:25:36-06:00, domen@coderock.org JFS: delete unused file Remove nowhere referenced file. (egrep "filename\." didn't find anything) Signed-off-by: Domen Puncer Signed-off-by: Dave Kleikamp ChangeSet@1.1938.464.6, 2004-12-29 15:41:46+00:00, tony@com.rmk.(none) [ARM PATCH] 2329/1: Update Kconfig for OMAP processor options Patch from Tony Lindgren Updates processor specific Kconfig options for OMAP Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.464.5, 2004-12-29 15:36:14+00:00, tony@com.rmk.(none) [ARM PATCH] 2328/1: ARM Kconfig updates for OMAP leds Patch from Tony Lindgren ARM Kconfig updates for OMAP leds Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.464.4, 2004-12-29 15:30:34+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2326/1: Fix IXP2000 timer implementation Patch from Deepak Saxena This patch fixes two issues with the IXP2000 timer implementation: - We currently to not account for lost timer interrupts - We currently do not check for rollover within gettimeoffset() Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.464.3, 2004-12-29 15:25:09+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2325/1: Cleanup IXP2000 reset handling Patch from Deepak Saxena On IXDP2801 we need to write a magic sequence to the CPLD to ensure a full system reset instead of just CPU reset. Also cleanup some comments and copyrights while we are in here. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.464.2, 2004-12-29 15:20:01+00:00, davis_g@com.rmk.(none) [ARM PATCH] 2324/1: Convert ARM proc files to use domain and pgtable manifest constants Patch from George G. Davis Convert ARM proc files to use manifest constants defined in pgtable.h and domain.h. This is a prelude to allow renumbering domains. The domain renumbering is required to implement support for ARMv6 MMU super sections where domain 0 is implied. Although this is technically only required for ARMv6, it seemed reasonable to clean up all proc files while here. I did a test build with and without this patch applied and confirmed that all proc file binaries are unchanged when this patch is applied. Signed-off-by: George G. Davis Signed-off-by: Russell King ChangeSet@1.1938.464.1, 2004-12-29 15:02:36+00:00, tony@com.rmk.(none) [ARM PATCH] 2332/1: OMAP update 1/2: Include files Patch from Tony Lindgren This patch syncs the mainline kernel with the linux-omap tree. The patch mostly contains minor fixes and extra register definitions by various OMAP developers. Signed-off-by: Tony Lindgren Signed-off-by: Russell King ChangeSet@1.1938.1.141, 2004-12-28 23:28:15-08:00, drm.adm@bkbits.net Merge bkbits.net:/repos/l/linux/linux-2.5 into bkbits.net:/repos/d/drm/drm-2.6 ChangeSet@1.1938.460.8, 2004-12-29 00:15:39+01:00, sam@mars.ravnborg.org kbuild: Use -isystem `gcc --print-file-name=include` Using "-nostdinc -isystem `gcc --print-file-name=include" let us see full path to compiler specific files when compiling with make V=1 Furthermore it lets us use same definition for sparse (CHECKFLAGS) and the kernel. Tested with gcc 3.3.4 only. Signed-off-by: Sam Ravnborg ChangeSet@1.1938.460.7, 2004-12-28 23:00:28+01:00, ahaas@airmail.net kbuild: Trivial Makefile patch The comment doesn't match the function name. From: "Art Haas" Signed-off-by: Sam Ravnborg ChangeSet@1.1938.460.6, 2004-12-28 22:59:46+01:00, sam@mars.ravnborg.org kbuild: skip localversion files with '~' anywhere in their name Idea from: Blaisorblade Signed-off-by: Sam Ravnborg ChangeSet@1.1938.462.5, 2004-12-28 13:50:56-08:00, matthew@wil.cx [IA64] Fix memcpy_fromio prototype Remove one layer of indirection from memcpy_fromio/memcpy_toio/memset_io and fix the prototypes to be const where appropriate. Signed-off-by: Matthew Wilcox Signed-off-by: Tony Luck ChangeSet@1.1938.462.4, 2004-12-28 13:46:10-08:00, davidm@hpl.hp.com [IA64] Fix swiotlb some more: - don't fault in unmap_single() when unmapping a coherent buffer. - make swiotlb_alloc_coherent() more resilient for devices with weird DMA masks - make swiotlb_dma_supported() return a useful value Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck ChangeSet@1.1938.460.5, 2004-12-28 22:42:36+01:00, mpm@selenic.com kbuild: make kernelrelease This patch makes it easy to programmatically get at the kernel makefile's idea of the kernel version from external scripts and makefiles with something like V=`make kernelrelease`. Alternatives include parsing Makefile (errorprone and broken by things like localversion) and running the C preprocessor on version.h (which requires a) building version.h somewhere and b) is really ugly). From: Matt Mackall Signed-off-by: Sam Ravnborg ChangeSet@1.1938.462.3, 2004-12-28 13:42:03-08:00, davidm@hpl.hp.com [IA64] contig.c: fix bug in DMA-zone initialization Below is a patch that fixes count_dma_pages(). Without this fix, only memory areas entirely below MAX_DMA_ADDRESS are counted as DMA-pages. While it doesn't really make a difference in practice (MAX_DMA_ADDRESS is equal to ~0UL on zx1), it's clearly not what was intended to be there. I found the bug only because I briefly experimented with lowering MAX_DMA_ADDRESS. Tony> The discontig.c version of this code already gets this right. Signed-off-by: David Mosberger-Tang Signed-off-by: Tony Luck ChangeSet@1.1938.462.2, 2004-12-28 13:22:45-08:00, matthew@wil.cx [IA64] Perfmon over-initialises its inodes i_sb and i_sock are both initialised by alloc_inode() Signed-off-by: Matthew Wilcox Acked-by: Stephane Eranian Signed-off-by: Tony Luck ChangeSet@1.1938.460.4, 2004-12-28 22:16:26+01:00, kaos@ocs.com.au kallsyms: gate page is part of the kernel, honour CONFIG_KALLSYMS_ALL * Treat the gate page as part of the kernel, to improve kernel backtraces. * Honour CONFIG_KALLSYMS_ALL, all symbols are valid, not just text. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.460.3, 2004-12-28 22:16:00+01:00, kaos@ocs.com.au kallsyms: Add in_gate_area_no_task() Add in_gate_area_no_task() for use in places where no task is valid (e.g. kallsyms). If you have a valid task, use in_gate_area() as before. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.462.1, 2004-12-28 13:15:44-08:00, tony.luck@intel.com [IA64] irq_ia64.c typo s/_IA64_REG_AR_SP/_IA64_REG_SP/ Patch supplied by Sourav Sen from HP: If I turn on IRQ_DEBUG in arch/ia64/kernel/irq_ia64.c in 2.6.8.1, the compilation does not go thru as there isn't any _IA64_REG_AR_SP Signed-off-by: Tony Luck ChangeSet@1.1938.460.2, 2004-12-28 22:15:34+01:00, kaos@ocs.com.au kallsyms: Clean up x86-64 special casing of in_gate_area() x86-64 has special case code for in_gate_area(), but it is not clean. * Replace CONFIG_ARCH_GATE_AREA with __HAVE_ARCH_GATE_AREA. ARCH_GATE_AREA is not a config option. * The definitions of get_gate_vma() and in_gate_area() are identical in include/asm-x86_64/page.h and include/linux/mm.h. Fold the duplicate definitions into include/linux/mm.h. Does not affect kallsyms directly, this patch just creates a clean base for patch 2. Signed-off-by: Keith Owens Signed-off-by: Sam Ravnborg ChangeSet@1.1938.461.2, 2004-12-28 22:05:31+01:00, bzolnier@trik.(none) [ide] serverworks: add support for CSB6 RAID From: Alan Cox The ServerWorks chips include a RAID variant that the 2.6 driver didn't support. This enables support for this and removes a pile of #if and other pointless obfuscations. This removes the need to use various vendor binary only drivers for CSB6 RAID. Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.461.1, 2004-12-28 20:35:01+01:00, bzolnier@trik.(none) [ide] add "ide=nodma" to documentation Here's a quick patch to add the currently-undocumented ide=nodma option to the Documentation/ide.txt file. Since the code does not mark this option as obsolete as far as I can see, I can only assume that it should be in the documentation Signed-off-by: Vadim Lobanov Signed-off-by: Bartlomiej Zolnierkiewicz ChangeSet@1.1938.460.1, 2004-12-28 19:12:15+01:00, sam@mars.ravnborg.org kbuild: drop use of /usr/bin/env in top-level Makefile The use of env is not needed, and caused the output makefile to be created in some setups where it was not supposed to. Seems to be an issue with GNU sh-utils version of env. One user also reported env to be located in another place (/usr/local/bin/..). This patch fixes bug: http://bugme.osdl.org/show_bug.cgi?id=3953 Thanks to "Mark Williams (MWP)" for helping tracking this down. Signed-off-by: Sam Ravnborg ChangeSet@1.1938.457.4, 2004-12-27 22:45:18-08:00, davem@nuts.davemloft.net [SPARC64]: Include infiniband driver config and update defconfig. Signed-off-by: David S. Miller ChangeSet@1.1938.457.3, 2004-12-27 22:30:04-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/ib-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.459.24, 2004-12-27 22:26:29-08:00, roland@topspin.com [INFINIBAND]: InfiniBand MAINTAINERS entry Add OpenIB maintainers information to MAINTAINERS. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.23, 2004-12-27 22:25:37-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand Documentation files Add files to Documentation/infiniband that describe the tree under /sys/class/infiniband, the IPoIB driver and the userspace MAD access driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.22, 2004-12-27 22:24:37-08:00, roland@topspin.com [INFINIBAND]: Document InfiniBand ioctl use Add the 0x1b ioctl magic number used by ib_umad module to Documentation/ioctl-number.txt. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.21, 2004-12-27 22:23:44-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB userspace MAD support Add a driver that provides a character special device for each InfiniBand port. This device allows userspace to send and receive MADs via write() and read() (with some control operations implemented as ioctls). All operations are 32/64 clean and have been tested with 32-bit userspace running on a ppc64 kernel. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.20, 2004-12-27 22:22:21-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB multicast and partition code Add functions for handling IPoIB multicast and multiple partitions. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.19, 2004-12-27 22:21:15-08:00, roland@topspin.com [INFINIBAND]: Add IPoIB (IP-over-InfiniBand) driver Add a driver that implements the (IPoIB) IP-over-InfiniBand protocol. This is a network device driver of type ARPHRD_INFINIBAND (and addr_len INFINIBAND_ALEN bytes). The ARP/ND implementation for this driver is not completely straightforward, because InfiniBand requires an additional path lookup be performed (through an IB-specific mechanism) after a remote hardware address has been resolved. We are very open to suggestions of a better way to handle this than the current implementation. Although IB has a special multicast group join mode intended to support IP multicast routing (non member join), no means to identify different multicast styles has yet been determined, so all joins by the driver are currently full member joins. We are looking for guidance in how to solve this. The IPoIB protocol/encapsulation is described in the Internet-Drafts http://www.ietf.org/internet-drafts/draft-ietf-ipoib-architecture-04.txt http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.18, 2004-12-27 22:19:47-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv6 support Add ipv6_ib_mc_map() to convert IPv6 multicast addresses to IPoIB hardware addresses, and add support for autoconfiguration for devices with type ARPHRD_INFINIBAND. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Nitin Hande Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.17, 2004-12-27 22:18:50-08:00, roland@topspin.com [INFINIBAND]: IPoIB IPv4 multicast Add ip_ib_mc_map() to convert IPv4 multicast addresses to IPoIB hardware addresses. Also add so INFINIBAND_ALEN has a home. The mapping for multicast addresses is described in http://www.ietf.org/internet-drafts/draft-ietf-ipoib-ip-over-infiniband-08.txt Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.16, 2004-12-27 22:17:23-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (MAD) Add MAD (management datagram) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.15, 2004-12-27 22:16:33-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (last bits) Add code for remaining InfiniBand objects (address vectors, multicast groups, memory regions and protection domains) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.14, 2004-12-27 22:15:37-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (QP/CQ) Add CQ (completion queue) and QP (queue pair) code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.13, 2004-12-27 22:14:43-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (initialization) Add device initializaton code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.12, 2004-12-27 22:13:44-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (EQ) Add event queue code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.11, 2004-12-27 22:12:48-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (FW commands) Add firmware command processing code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.10, 2004-12-27 22:11:50-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver (midlayer interface) Add midlayer interface code for Mellanox HCA driver. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.9, 2004-12-27 22:10:49-08:00, roland@topspin.com [INFINIBAND]: Add Mellanox HCA low-level driver Add a low-level driver for Mellanox MT23108 and MT25208 HCAs. The MT25208 is only fully supported when in MT23108 compatibility mode; only the very beginnings of support for native MT25208 mode (required for HCAs without local memory) is present. (As a side note, I believe this driver would be the first in-tree consumer of the PCI MSI/MSI-X API) Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.8, 2004-12-27 22:09:20-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand SA (Subnet Administration) query support Add support for sending queries to the SA (Subnet Administration). In particular the PathRecord and MCMember (multicast group member) used by the IP-over-InfiniBand driver are implemented. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.7, 2004-12-27 22:07:43-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD SMI support Add MAD layer SMI (Subnet Management Interface) code. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.6, 2004-12-27 22:06:34-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (private headers) Add MAD layer private implementation headers. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.5, 2004-12-27 22:05:25-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support Add support for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. This is required for an SM (subnet manager) to discover and configure the host, since the SM's query MADs must be passed to the local SMA (subnet management agent). In addition, this support is used by upper level protocols to send queries to and receive responses from the SM. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.4, 2004-12-27 22:03:33-08:00, roland@topspin.com [INFINIBAND]: Add InfiniBand MAD (management datagram) support (public headers) Add public headers for handling InfiniBand MADs (management datagrams), including sending and receiving MADs as well as passing MADs on to local agents. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.3, 2004-12-27 22:02:08-08:00, roland@topspin.com [INFINIBAND]: Hook up drivers/infiniband Add the appropriate lines to drivers/Kconfig and drivers/Makefile so that the kernel configuration and build systems know about drivers/infiniband. Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.2, 2004-12-27 21:58:49-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support Add implementation of core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.459.1, 2004-12-27 21:57:29-08:00, roland@topspin.com [INFINIBAND]: Add core InfiniBand support (public headers) Add public headers for core InfiniBand support. This can be thought of as a midlayer that provides an abstraction between low-level hardware drivers and upper level protocols (such as IP-over-InfiniBand). Signed-off-by: Roland Dreier Signed-off-by: David S. Miller ChangeSet@1.1938.457.2, 2004-12-27 21:30:55-08:00, davem@nuts.davemloft.net Merge bk://kernel.bkbits.net/acme/connection_sock-2.6 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.458.34, 2004-12-27 21:26:00-08:00, tgraf@suug.ch [PKT_SCHED]: dsmark should ignore ECN bits Taking ECN bits into account doesn't make sense. The two bits were still unused at the time the code was written so this brings back the old behaviour. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.1938.458.33, 2004-12-27 21:25:02-08:00, oleg@tv-sign.ru [NET]: Use prefetching in skb_queue_walk(). This patch changes skb_queue_walk() in the same manner as in list_for_each() prefetch optimization, see http://marc.theaimsgroup.com/?l=linux-kernel&m=110399132418587 Signed-off-by: Oleg Nesterov Signed-off-by: David S. Miller ChangeSet@1.1938.458.32, 2004-12-27 21:12:16-08:00, davem@nuts.davemloft.net [LLC]: llc_sap_list_lock really does need to be exported. For the case where CONFIG_LLC2 is modular and thus llc_proc.c needs to get at this symbol. Signed-off-by: David S. Miller ChangeSet@1.1938.458.31, 2004-12-27 21:08:40-08:00, davem@nuts.davemloft.net [SPARC64]: Fix typo in previous change, s/IS_SOCK/S_ISSOCK/ Signed-off-by: David S. Miller ChangeSet@1.1938.458.30, 2004-12-27 21:04:56-08:00, davem@nuts.davemloft.net [IRDA]: More staticization becomes possible in ircomm_ttp.c Signed-off-by: David S. Miller ChangeSet@1.1938.458.29, 2004-12-27 20:55:17-08:00, matthew@wil.cx [SPARC64]: Stop referencing i_sock directly. Use S_ISSOCK() instead. Signed-off-by: Matthew Wilcox Signed-off-by: David S. Miller ChangeSet@1.1938.458.28, 2004-12-27 20:54:03-08:00, juhl-lkml@dif.dk [IRDA]: Kill useless parens from return statements in irnet.h Signed-off-by: Jesper Juhl Signed-off-by: David S. Miller ChangeSet@1.1938.458.27, 2004-12-27 20:52:34-08:00, bunk@stusta.de [IPVS]: Remove subscribers-only mailing list from MAINTAINERS. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.26, 2004-12-27 20:51:40-08:00, bunk@stusta.de [PKT_SCHED]: Staticize and other cleanups. The patch below contans the following possible cleanups: - make some needlessly global code static - sch_htb.c: #undef HTB_DEBUG Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.25, 2004-12-27 20:50:34-08:00, bunk@stusta.de [RXRPC]: Staticize and remove unused globals and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global function: - transport.c: rxrpc_clear_transport - remove the following unneeded EXPORT_SYMBOL: - rxrpc_syms.c: rxrpc_call_flush Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.24, 2004-12-27 20:49:18-08:00, bunk@stusta.de [ROSE]: Staticize and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.23, 2004-12-27 20:48:19-08:00, bunk@stusta.de [NETROM]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.22, 2004-12-27 20:46:42-08:00, bunk@stusta.de [LLC]: Staticize and remove unnecessary functions and exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - lc_c_ac.c: llc_conn_ac_report_status - lc_c_ac.c: llc_conn_ac_send_dm_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_resend_i_cmd_p_set_1_or_send_rr - lc_c_ac.c: llc_conn_ac_send_ack_cmd_p_set_1 - lc_c_ac.c: llc_conn_ac_send_ua_rsp_f_set_f_flag - lc_c_ac.c: llc_conn_ac_set_f_flag_p - llc_c_ev.c: llc_conn_ev_conn_resp - llc_c_ev.c: llc_conn_ev_rst_resp - llc_c_ev.c: llc_conn_ev_rx_xxx_cmd_pbit_set_0 - llc_c_ev.c: llc_conn_ev_rx_xxx_yyy - llc_c_ev.c: llc_conn_ev_any_tmr_exp - llc_c_ev.c: llc_conn_ev_qlfy_init_p_f_cycle - llc_c_ev.c: llc_conn_ev_qlfy_set_status_impossible - llc_c_ev.c: llc_conn_ev_qlfy_set_status_received - llc_if.c: llc_build_and_send_reset_pkt - llc_pdu.c: llc_pdu_decode_cr_bit - remove the following unneeded EXPORT_SYMBOL: - llc_core.c: llc_sap_list_lock Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.21, 2004-12-27 20:45:07-08:00, bunk@stusta.de [IRDA]: Staticize and remove unnecessary exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - discovery.c: irlmp_find_device - ircomm/ircomm_param.c: ircomm_param_flush - irda_device.c: irda_device_set_dtr_rts - irda_device.c: irda_device_change_speed - irda_device.c: irda_device_set_mode - iriap.c: iriap_getinfobasedetails_request - iriap.c: iriap_getinfobasedetails_confirm - iriap.c: iriap_getobjects_request - iriap.c: iriap_getobjects_confirm - iriap.c: iriap_getvalue - irlan_client.c: irlan_client_reconnect_data_channel - irlap_frame.c: irlap_send_frmr_frame - irlmp.c: irlmp_status_request - remove the follwong unused global variables: - irnet/irnet_ppp.c: irnet_ppp_ops - irsysctl.c: sysctl_compression - qos.c: #ifndef CONFIG_IRDA_DYNAMIC_WINDOW irlap_requested_line_capacity Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.20, 2004-12-27 20:34:31-08:00, kaber@trash.net [IPV4]: Let people know where to obtain the ss tool from. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller ChangeSet@1.1938.458.19, 2004-12-27 19:50:18-08:00, bunk@stusta.de [IPV4]: Staticize and remove unneeded exports. The patch below contains the following possible cleanups: - make some needlessly global code static - remove the following unused global functions: - fib_rules.c: fib_rules_map_destination - xfrm4_policy.: xfrm4_fini - remove the following unneeded EXPORT_SYMBOL: - tcp_timer.c: tcp_timer_bug_msg Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.18, 2004-12-27 18:54:21-08:00, bunk@stusta.de [IPX]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.17, 2004-12-27 18:49:21-08:00, bunk@stusta.de [IPVS]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.16, 2004-12-27 18:41:46-08:00, bunk@stusta.de [AF_PACKET]: Make needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.15, 2004-12-27 18:40:25-08:00, bunk@stusta.de [NETLINK]: Staticize and remove unused functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.14, 2004-12-27 18:38:23-08:00, bunk@stusta.de [AF_NET]: Mark pfkey_table static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.13, 2004-12-27 18:36:20-08:00, bunk@stusta.de [NET]: Mark eth_header_parse static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.12, 2004-12-27 18:33:52-08:00, bunk@stusta.de [XFRM]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.11, 2004-12-27 18:32:23-08:00, bunk@stusta.de [X25]: Staticize, and remove unused global functions. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.10, 2004-12-27 18:30:49-08:00, bunk@stusta.de [AF_UNIX]: Mark needlessly global code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.9, 2004-12-27 18:29:36-08:00, bunk@stusta.de [SUNRPC]: Staticize, kill unused functions, and remove unneeded exports. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.8, 2004-12-27 18:25:23-08:00, bunk@stusta.de [NET]: No need to export sock_readv_writev Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.7, 2004-12-27 18:24:18-08:00, bunk@stusta.de [AX25]: Staticize functions, and remove unused global function. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.6, 2004-12-27 18:23:16-08:00, bunk@stusta.de [APPLETALK]: Make some code static. Signed-off-by: Adrian Bunk Signed-off-by: David S. Miller ChangeSet@1.1938.458.5, 2004-12-27 18:18:32-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/sunrpcgss_syms.c Signed-off-by: David S. Miller ChangeSet@1.1938.458.4, 2004-12-27 18:15:09-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/svcauth_des.c Signed-off-by: David S. Miller ChangeSet@1.1938.458.3, 2004-12-27 18:12:59-08:00, bunk@stusta.de [SUNRPC]: Remove unused file net/sunrpc/auth_gss/gss_pseudoflavors.c Signed-off-by: David S. Miller ChangeSet@1.1938.458.2, 2004-12-27 18:08:07-08:00, chas@cmf.nrl.navy.mil [ATM]: small atm cleanups (from Adrian Bunk ) Signed-off-by: Chas Williams Signed-off-by: David S. Miller ChangeSet@1.1938.458.1, 2004-12-27 18:06:57-08:00, tgraf@suug.ch [PKT_SCHED]: Validate policer configuration TLVs. Signed-off-by: Thomas Graf Signed-off-by: David S. Miller ChangeSet@1.1938.457.1, 2004-12-27 23:57:10-02:00, acme@conectiva.com.br [INET] move inet_sock into inet_opt and rename it to inet_sock With this we can remove all the cut'n'pasted layouts in all inet_sock derived classes, such as tcp_sock, udp_sock, sctp_sock, etc. Signed-off-by: Arnaldo Carvalho de Melo Signed-off-by: David S. Miller ChangeSet@1.1938.456.5, 2004-12-27 15:41:28-05:00, stkn@gentoo.org [libata] add #include (fixes 2.4 alpha build) ChangeSet@1.1938.456.3, 2004-12-27 15:29:14-05:00, albertcc@tw.ibm.com [libata] verify ATAPI DMA for a given request is OK After some testing, it seems that some PATA host adapter (ex. pdc20275) cannot work reliably with specific request buffer sizes under ATAPI DMA mode. Detailed test result: 4096, 2048, 1024, 512, 256: OK 384, 257, 255, 128, 96, 64, 32: failed (irq lost) It seems multiple of 256 bytes are the safe ATAPI DMA buffer sizes to use. Attached please find the patch to fix the pdc2027x ATAPI DMA problem. Changes: 1. Add a callback function "check_atapi_dma()" to ata_port_operations such that libata core can ask the driver: "Can this command be processed in ATAPI DMA mode safely? " when the the command is received. 2. ATAPI DMA is off by default if the callback function is not provided by the driver If the callback function is not provided by the driver, the ATAPI DMA should be as is. The ATAPI DMA is already controlled by dev->flags. BTW, the patch isolates the ATAPI DMA workaround to the pdc20275 driver itself, not impacting libata core . Signed-off-by: Albert Lee ChangeSet@1.1938.456.2, 2004-12-27 15:24:53-05:00, albertcc@tw.ibm.com [libata] PIO error handling improvement Tested burning CD-RW with libata-dev-2.6 and cdrecord: 1. ATAPI DMA mode - tested OK 2. ATAPI PIO mode - test failed when cdrecord finishes burning and issues MODE_SELECT to the device. After checking the log, it showed that MODE_SELECT caused ata_pio_complete() to return error. However, the error is not handled by ata_pio_task(). Attached please find the patch for ata_pio_task() error handling for your review. (The patch is against the libata-dev-2.6 tree. ) Changes in the patch: 1. End the PIO task when PIO_ST_IDLE state is entered 2. End the PIO task after PIO_ST_TMOUT and PIO_ST_ERR state handled by ata_pio_error() 3. Remove the first "if" statement to handle the error condition returned from ata_pio_block(), ata_pio_complete() and ata_pio_poll(). Change #2 is not so necessary since ata_pio_error() will put the cmd to PIO_ST_IDLE state after the error condition is handled. The change just saves a function call to queue_work(). Tested OK on on my machine with pdc20275 and ASUS CD-RW drive. Signed-off-by: Albert Lee ChangeSet@1.1938.456.1, 2004-12-27 15:22:51-05:00, albertcc@tw.ibm.com [libata] use PIO mode for request sense Signed-off-by: Albert Lee ChangeSet@1.1938.455.1, 2004-12-27 15:18:56-05:00, penguin@muskoka.com [PATCH] 2.6.9 Use skb_padto() in drivers/net/8390.c The 8390 driver had been fixed for leaking information in short packets prior to skb_padto() existing. This change gets rid of the scratch area on the stack and makes it use skb_padto(). Thanks to Mark Smith for bringing this to my attention. Signed-off-by: Paul Gortmaker Signed-off-by: Jeff Garzik ChangeSet@1.1938.454.3, 2004-12-27 15:13:29-05:00, bunk@stusta.de [PATCH] drivers/char/hw_random.c: make a variable static Signed-off-by: Jeff Garzik ChangeSet@1.1938.454.2, 2004-12-27 15:13:16-05:00, james4765@verizon.net [PATCH] hw_random: Minor cleanup to hw_random.c Clean up in drivers/char/hw_random.c: Make debug #defines a little easier to understand. Small whitespace cleanup. Change some printk()'s into pr_info()'s. Add KERN_ constant to debug printk(). Signed-off-by: James Nelson Signed-off-by: Jeff Garzik ChangeSet@1.1938.438.63, 2004-12-27 10:28:42-08:00, torvalds@ppc970.osdl.org Merge bk://linux-scsi.bkbits.net/scsi-for-linus-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.438.62, 2004-12-27 10:24:28-08:00, arjan@infradead.org [PATCH] drivers/acpi/ibm_acpi.o .init.text refers to .exit.text the ibm_acpi.c driver references acpi_ibm_exit() from it's __init function, which means the exit function isn't allowed to be __exit since __exit functions are not part of vmlinux while __init functions are. Signed-off-by: Arjan van de Ven Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.61, 2004-12-27 10:21:04-08:00, torvalds@ppc970.osdl.org Merge bk://linux-voyager.bkbits.net/mca-2.6 into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.438.60, 2004-12-27 10:19:24-08:00, torvalds@ppc970.osdl.org Revert duplicate AC97 id's. They were already there, properly sorted too. ChangeSet@1.1938.395.42, 2004-12-27 10:06:23-06:00, jejb@mulgrave.(none) SCSI: fix compile warning in fc transport class CC [M] drivers/scsi/scsi_transport_fc.o drivers/scsi/scsi_transport_fc.c: In function `fc_stat_show': drivers/scsi/scsi_transport_fc.c:634: warning: long long unsigned int format, long unsigned int arg (arg 4) To us %llx on a 64 bit platform we have to cast u64 to unsigned long long. Signed-off-by: James Bottomley ChangeSet@1.1938.395.41, 2004-12-27 09:52:25-06:00, jejb@mulgrave.(none) SCSI: Add FC transport host attributes From: James.Smart@Emulex.Com This patch updates the fc_transport with attributes for local FC ports (e.g. Hosts). The port attributes are defined per HBAAPI v2.0 definitions. This patch results in the following in /sys/class: ----------------------------------------------------- [jsmart@elxware class]$ cd /sys/class [jsmart@elxware class]$ ls fc_host graphics misc pci_bus scsi_host usb_host fc_transport input net scsi_device tty vc firmware mem netlink scsi_generic usb [jsmart@elxware class]$ cd fc_host [jsmart@elxware fc_host]$ ls host4 [jsmart@elxware fc_host]$ cd host4 [jsmart@elxware host4]$ ls device host_port_maxframe_size host_port_supported_speeds host_fabric_name host_port_name host_port_symbolic_name host_link_down_tmo host_port_speed host_port_type host_node_name host_port_state host_tgtid_bind_type host_port_active_fc4s host_port_supported_classes statistics host_port_id host_port_supported_fc4s [jsmart@elxware host4]$ ls -ld * lrwxrwxrwx 1 root root 0 Oct 13 18:24 device -> ../../../devices/platform/host4 -r--r--r-- 1 root root 4096 Oct 13 18:24 host_fabric_name -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_link_down_tmo -r--r--r-- 1 root root 4096 Oct 13 18:24 host_node_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_active_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_id -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_maxframe_size -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_speed -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_state -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_classes -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_fc4s -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_supported_speeds -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_symbolic_name -r--r--r-- 1 root root 4096 Oct 13 18:24 host_port_type -rw-r--r-- 1 root root 4096 Oct 13 18:24 host_tgtid_bind_type drwxr-xr-x 2 root root 0 Oct 13 18:24 statistics Using the following script (/tmp/show_attributes): #!/bin/sh FILES=`ls *` for file in $FILES; do if [ -f $file ] ; then echo "$file : " `cat $file` fi done Here's a sample of querying the attributes: [jsmart@elxware /]$ cd /sys/class/fc_host/host4 [jsmart@elxware host4]$ /tmp/show_attributes host_fabric_name : 0x33334444ffeeddcc host_link_down_tmo : 30 host_node_name : 0x78563412aabbccdd host_port_active_fc4s : hex: 40 41 42 43 44 45 46 47 48 49 4a 4b 4c 4d 4e 4f 50 51 52 53 54 55 56 57 58 59 5a 5b 5c 5d 5e 5f host_port_id : 0x789abc host_port_maxframe_size : 2511 bytes host_port_name : 0xefcdab9011223344 host_port_speed : 2 Gbit host_port_state : Online host_port_supported_classes : Class 2, Class 3 host_port_supported_fc4s : hex: 80 81 82 83 84 85 86 87 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 9c 9d 9e 9f host_port_supported_speeds : 2 Gbit, 4 Gbit, 10 Gbit host_port_symbolic_name : LP9052 Dual Port Adapter host_port_type : NPort (fabric via point-to-point) host_tgtid_bind_type : wwpn (World Wide Port Name) Signed-off-by: James Bottomley ChangeSet@1.1938.395.40, 2004-12-27 09:13:20-06:00, sleddog@us.ibm.com [PATCH] ibmvscsi: replace schedule_timeout() with msleep() Description: Use msleep() instead of schedule_timeout() to guarantee the task delays as expected. Originally submitted to linux-scsi by the janitors, and resubmitted by boutcher (after testing :-) Signed-off-by: Nishanth Aravamudan Signed-off-by: Maximilian Attems Signed-off-by: Dave Boutcher Signed-off-by: James Bottomley ChangeSet@1.1938.453.3, 2004-12-27 10:58:39+00:00, dvrabel@com.rmk.(none) [ARM PATCH] 2323/1: Expand IXP4XX_WATCHDOG config help text Patch from David Vrabel Expand the IXP4XX_WATCHDOG (IXP4xx internal watchdog) config option help text with a note about its ineffectiveness. Signed-off-by: David Vrabel Signed-off-by: Russell King ChangeSet@1.1938.453.2, 2004-12-27 10:53:36+00:00, catalin.marinas@com.rmk.(none) [ARM PATCH] 2322/1: Enable ARM922T configuration option for Integrator Patch from Catalin Marinas This patch enables the ARM922T configuration option for the Integrator platforms (there is an Excalibur core module available). Signed-off-by: Catalin Marinas Signed-off-by: Russell King ChangeSet@1.1938.453.1, 2004-12-27 10:48:52+00:00, dsaxena@net.rmk.(none) [ARM PATCH] 2264/1: Move platform-specific code out of entry-armv.S Patch from Deepak Saxena This patch borrows from the uclinux source where they have moved the per-platform code for get_irqnr_and_base, disable_fiq, and irq_prio_table out of entry-armv.S. However, instead of putting the macros in arch/arm/mach-$(MACHINE)/entry-header.S, we just have it in the machine's incdir. This means we don't need the extra complexity of creating symlink at build time. The patch also removes the irq_prio_table as a requirement for all machines and makes it specific to IOC/IOMD machines. This patch drastically shrinks entry-armv.S and allows us to delete and add machines without having to touch generic code (there were two dead machines laying around in entry-armv.S). Tested on IXP4xx and test-built for just about every defconfig. Signed-off-by: Deepak Saxena Signed-off-by: Russell King ChangeSet@1.1938.438.59, 2004-12-27 04:31:00-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/janitor into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.438.58, 2004-12-27 04:29:21-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/misc into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.438.56, 2004-12-27 04:26:39-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/viro-eth1 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1966, 2004-12-27 10:21:15+01:00, vojtech@suse.cz Merge suse.cz:/home/vojtech/bk/linus into suse.cz:/home/vojtech/bk/input ChangeSet@1.1938.438.52, 2004-12-26 22:20:57-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Early ALI watchdog support Originally submitted by Mike Waychison in August but apparently lost. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.51, 2004-12-26 22:20:44-08:00, alan@lxorguk.ukuu.org.uk [PATCH] quiet scsi ioctls warnings SCSI ioctls can ask for a lot of memory and fail. We don't need to vomit in the log file for this case. Again taken from the Red Hat minor patches applied for FC3. Original-patch: Arjan van de Ven Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.50, 2004-12-26 22:20:32-08:00, alan@lxorguk.ukuu.org.uk [PATCH] Paul Laufer CREDITS address update Paul Laufer informed the list that he had changed address and his change of address had been ignored so CREDITS was still wrong although other files had been updated. Fix this. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.49, 2004-12-26 22:20:19-08:00, alan@lxorguk.ukuu.org.uk [PATCH] make microcode text less confusing Red Hat got some confused customers due to this message. The confused user case is when they update the BIOS and all of a sudden we have "no suitable data" yet we did before. We (Arjan van de Ven) thus changed it to "No new microcode" which is much much clearer. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.48, 2004-12-26 22:20:06-08:00, alan@lxorguk.ukuu.org.uk [PATCH] i810 more AC97 tunings Add some more funky AC97 knowledge to the intel8x0 driver. These come from Red Hat and its partners and are included in our shipping code. Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds ChangeSet@1.1938.438.47, 2004-12-26 22:15:27-08:00, torvalds@ppc970.osdl.org Merge bk://linux-dj.bkbits.net/agpgart into ppc970.osdl.org:/home/torvalds/v2.6/linux ChangeSet@1.1938.452.2, 2004-12-26 22:14:57-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/s2io into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.452.1, 2004-12-26 22:13:59-05:00, jgarzik@pobox.com Merge pobox.com:/garz/repo/netdev-2.6/r8169 into pobox.com:/garz/repo/net-drivers-2.6 ChangeSet@1.1938.438.45, 2004-12-25 13:54:06-08:00, davem@nuts.davemloft.net Merge nuts.davemloft.net:/disk1/BK/net-2.6.11 into nuts.davemloft.net:/disk1/BK/net-2.6 ChangeSet@1.1938.438.44, 2004-12-24 13:26:21-08:00, torvalds@ppc970.osdl.org Linux 2.6.10 Merry Christmas everyone. Ho ho ho! TAG: v2.6.10