commit ea67db4cdbbf7f4e74150e71da0984e25121f500 Author: Linus Torvalds Date: Thu Dec 20 17:25:48 2007 -0800 Linux 2.6.24-rc6 commit 4743e0ec1217fd00f57461ebdd7979d31af18700 Author: Lachlan McIlroy Date: Fri Dec 21 11:00:23 2007 +1100 [XFS] Initialise current offset in xfs_file_readdir correctly After reading the directory contents into the temporary buffer, we grab each dirent and pass it to filldir witht eh current offset of the dirent. The current offset was not being set for the first dirent in the temporary buffer, which coul dresult in bad offsets being set in the f_pos field result in looping and duplicate entries being returned from readdir. SGI-PV: 974905 SGI-Modid: xfs-linux-melb:xfs-kern:30282a Signed-off-by: David Chinner Signed-off-by: Tim Shimmin Signed-off-by: Lachlan McIlroy commit bad60fdd14df32459e31cc75ab681e4458bf25cf Author: Christoph Hellwig Date: Fri Dec 21 10:58:56 2007 +1100 [XFS] Fix mknod regression This was broken by my '[XFS] simplify xfs_create/mknod/symlink prototype', which assigned the re-shuffled ondisk dev_t back to the rdev variable in xfs_vn_mknod. Because of that i_rdev is set to the ondisk dev_t instead of the linux dev_t later down the function. Fortunately the fix for it is trivial: we can just remove the assignment because xfs_revalidate_inode has done the proper job before unlocking the inode. SGI-PV: 974873 SGI-Modid: xfs-linux-melb:xfs-kern:30273a Signed-off-by: Christoph Hellwig Signed-off-by: David Chinner Signed-off-by: Lachlan McIlroy commit 04fa11ea170afd147b5d1e1ec88ec359a766bf31 Author: Jason Gaston Date: Fri Dec 21 01:27:19 2007 +0100 x86: intel_cacheinfo.c: cpu cache info entry for Intel Tolapai This patch adds a cpu cache info entry for the Intel Tolapai cpu. Signed-off-by: Jason Gaston Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit c0a698b7443a9fce76b0a849f06c45ac78f3b0a0 Author: Ingo Molnar Date: Fri Dec 21 01:27:19 2007 +0100 x86: fix die() to not be preemptible Andrew "Eagle Eye" Morton noticed that we use raw_local_save_flags() instead of raw_local_irq_save(flags) in die(). This allows the preemption of oopsing contexts - which is highly undesirable. It also causes CONFIG_DEBUG_PREEMPT to complain, as reported by Miles Lane. this bug was introduced via: commit 39743c9ef717fd4f2b5583f010115c5f2482b8ae Author: Andi Kleen Date: Fri Oct 19 20:35:03 2007 +0200 x86: use raw locks during oopses - spin_lock_irqsave(&die.lock, flags); + __raw_spin_lock(&die.lock); + raw_local_save_flags(flags); that is not a correct open-coding of spin_lock_irqsave(): both the ordering is wrong (irqs should be disabled _first_), and the wrong flags-saving API was used. Signed-off-by: Ingo Molnar commit 91e106259214b40e992a58fb9417da46868e19b2 Author: Milan Broz Date: Thu Dec 13 14:16:10 2007 +0000 dm crypt: use bio_add_page Fix possible max_phys_segments violation in cloned dm-crypt bio. In write operation dm-crypt needs to allocate new bio request and run crypto operation on this clone. Cloned request has always the same size, but number of physical segments can be increased and violate max_phys_segments restriction. This can lead to data corruption and serious hardware malfunction. This was observed when using XFS over dm-crypt and at least two HBA controller drivers (arcmsr, cciss) recently. Fix it by using bio_add_page() call (which tests for other restrictions too) instead of constructing own biovec. All versions of dm-crypt are affected by this bug. Cc: stable@kernel.org Cc: dm-crypt@saout.de Signed-off-by: Milan Broz Signed-off-by: Alasdair G Kergon commit 91212507f93778c09d4c1335207b6f4b995f5ad1 Author: Neil Brown Date: Thu Dec 13 14:16:04 2007 +0000 dm: merge max_hw_sector Make sure dm honours max_hw_sectors of underlying devices We still have no firm testing evidence in support of this patch but believe it may help to resolve some bug reports. - agk Signed-off-by: Neil Brown Signed-off-by: Alasdair G Kergon commit 69267a30bed1fabec658058c63845528a8b813d4 Author: Alasdair G Kergon Date: Thu Dec 13 14:15:57 2007 +0000 dm: trigger change uevent on rename Insert a missing KOBJ_CHANGE notification when a device is renamed. Cc: Scott James Remnant Signed-off-by: Alasdair G Kergon commit adfe47702c4726b3e045f9f83178def02833be4c Author: Milan Broz Date: Thu Dec 13 14:15:51 2007 +0000 dm crypt: fix write endio Fix BIO_UPTODATE test for write io. Cc: stable@kernel.org Cc: dm-crypt@saout.de Signed-off-by: Milan Broz Signed-off-by: Alasdair G Kergon commit d1622e89099b7cdda20d95a68940067bdddda03c Author: Paul Mundt Date: Thu Dec 13 14:15:43 2007 +0000 dm mpath: hp requires scsi With CONFIG_SCSI=n __scsi_print_sense() is never linked in. drivers/built-in.o: In function `hp_sw_end_io': dm-mpath-hp-sw.c:(.text+0x914f8): undefined reference to `__scsi_print_sense' Caught with a randconfig on current git. Signed-off-by: Paul Mundt Signed-off-by: Alasdair G Kergon commit 512875bd9661368da6f993205a61213b79ba1df0 Author: Jun'ichi Nomura Date: Thu Dec 13 14:15:25 2007 +0000 dm: table detect io beyond device This patch fixes a panic on shrinking a DM device if there is outstanding I/O to the part of the device that is being removed. (Normally this doesn't happen - a filesystem would be resized first, for example.) The bug is that __clone_and_map() assumes dm_table_find_target() always returns a valid pointer. It may fail if a bio arrives from the block layer but its target sector is no longer included in the DM btree. This patch appends an empty entry to table->targets[] which will be returned by a lookup beyond the end of the device. After calling dm_table_find_target(), __clone_and_map() and target_message() check for this condition using dm_target_is_valid(). Sample test script to trigger oops: commit 3c378158d4cd2125b42fe2b8bb23d512fdff6fe6 Author: Ivan Kokshaysky Date: Thu Dec 20 11:47:07 2007 +0300 mm: fix exit_mmap BUG() on a.out binary exit The problem was introduced by commit "mm: variable length argument support" (b6a2fea39318e43fee84fa7b0b90d68bed92d2ba) as it didn't update fs/binfmt_aout.c like other binfmt's. I noticed that on alpha when accidentally launched old OSF/1 Acrobat Reader binary. Obviously, other architectures are affected as well. Signed-off-by: Ivan Kokshaysky Cc: Ollie Wild Acked-by: Peter Zijlstra Cc: Andrew Morton Cc: Hugh Dickins Cc: Adrian Bunk Signed-off-by: Linus Torvalds commit 2c3b20e91fe3a083c5d9bc79437c485866ea251c Author: Arjan van de Ven Date: Thu Dec 20 15:01:17 2007 +0100 debug: add end-of-oops marker Right now it's nearly impossible for parsers that collect kernel crashes from logs or emails (such as www.kerneloops.org) to detect the end-of-oops condition. In addition, it's not currently possible to detect whether or not 2 oopses that look alike are actually the same oops reported twice, or are truly two unique oopses. This patch adds an end-of-oops marker, and makes the end marker include a very simple 64-bit random ID to be able to detect duplicate reports. Normally, this ID is calculated as a late_initcall() (in the hope that at that time there is enough entropy to get a unique enough ID); however for early oopses the oops_exit() function needs to generate the ID on the fly. We do this all at the _end_ of an oops printout, so this does not impact our ability to get the most important portions of a crash out to the console first. [ Sidenote: the already existing oopses-since-bootup counter we print during crashes serves as the differentiator between multiple oopses that trigger during the same bootup. ] Tested on 32-bit and 64-bit x86. Artificially injected very early crashes as well, as expected they result in this constant ID after multiple bootups: ---[ end trace ca143223eefdc828 ]--- ---[ end trace ca143223eefdc828 ]--- because the random pools are still all zero. But it all still works fine and causes no additional problems (which is the main goal of instrumentation code). Signed-off-by: Arjan van de Ven Signed-off-by: Ingo Molnar commit 67e2be02328b9a61a9c799fbdd4ec94d7da0c323 Author: Peter Zijlstra Date: Thu Dec 20 15:01:17 2007 +0100 sched: rt: account the cpu time during the tick Realtime tasks would not account their runtime during ticks. Which would lead to: struct sched_param param = { .sched_priority = 10 }; pthread_setschedparam(pthread_self(), SCHED_FIFO, ¶m); while (1) ; Not showing up in top. Signed-off-by: Peter Zijlstra Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit fbdcf18df73758b2e187ab94678b30cd5f6ff9f9 Author: Mike Travis Date: Wed Dec 19 23:20:19 2007 +0100 x86: fix show cpuinfo cpu number always zero when called by setup_arch) after smp_store_cpu_info() had set it to the correct value. The error shows up in 'cat /proc/cpuinfo' will all cpus = 0. Signed-off-by: Mike Travis Cc: Andi Kleen Cc: Christoph Lameter Cc: Jack Steiner Cc: Suresh B Siddha Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3d054f0fade192b454592817c16e0f49e3e295dc Author: Adrian Bunk Date: Wed Dec 19 23:20:19 2007 +0100 x86_32: disable_pse must be __cpuinitdata CONFIG_HOTPLUG_CPU=y: WARNING: vmlinux.o(.text+0xfa52): Section mismatch: reference to .init.data:disable_pse (between 'identify_cpu' and 'identify_secondary_cpu') [ akpm@linux-foundation.org: initializer fix. ] Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 3446fa057c33b5464ba6891866c24cd57daf023c Author: Adrian Bunk Date: Wed Dec 19 23:20:18 2007 +0100 x86_32: select_idle_routine() must be __cpuinit CONFIG_HOTPLUG_CPU=y: WARNING: vmlinux.o(.text+0x1199a): Section mismatch: reference to .init.text.5:select_idle_routine (between 'init_intel' and 'init_nexgen') Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f2206ec92c1bd2145a63b2ef1f6abccd6439fe73 Author: Adrian Bunk Date: Wed Dec 19 23:20:18 2007 +0100 x86 smpboot_32.c section fixes CONFIG_HOTPLUG_CPU=y: WARNING: vmlinux.o(.text+0x22c60): Section mismatch: reference to .init.data:cpu_idle_tasks (between 'do_boot_cpu' and 'do_warm_boot_cpu') WARNING: vmlinux.o(.text+0x22c99): Section mismatch: reference to .init.data:cpu_idle_tasks (between 'do_boot_cpu' and 'do_warm_boot_cpu') WARNING: vmlinux.o(.text+0x2359b): Section mismatch: reference to .init.data:smp_b_stepping (between 'smp_store_cpu_info' and 'cpu_exit_clear') WARNING: vmlinux.o(.text+0x235a0): Section mismatch: reference to .init.data:smp_b_stepping (between 'smp_store_cpu_info' and 'cpu_exit_clear') Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit d53379832624c0ecab7f46749c8b72e49a88d160 Author: Adrian Bunk Date: Wed Dec 19 23:20:18 2007 +0100 x86 apic_32.c section fix CONFIG_HOTPLUG_CPU=y: WARNING: vmlinux.o(.text+0x2390d): Section mismatch: reference to .init.text.5:setup_local_APIC (between 'start_secondary' and 'check_tsc_warp') Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit f941b168a4d7281bf49e166f2febc49470c0149f Author: Alan Cox Date: Wed Dec 19 17:50:32 2007 +0000 pata_hpt37x: Fix HPT374 detection Bug #9261 Signed-off-by: Alan Cox Signed-off-by: Linus Torvalds commit fcbe6e9709f90fd83cfa614a4e0efe83174018ea Author: Geoff Levand Date: Wed Dec 19 11:17:31 2007 +0100 ps3fb: Fix ps3fb free_irq() dev_id The dev_id arg passed to free_irq() must match that passed to request_irq(). Fixes this PS3 error message: Trying to free already-free IRQ 44 Signed-off-by: Geoff Levand Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds commit 9ac67a35827ee03d71f2f1c656a725e263b14a7e Author: Geert Uytterhoeven Date: Wed Dec 19 11:16:41 2007 +0100 ps3fb: Update for firmware 2.10 ps3fb: Update for firmware 2.10 As of PS3 firmware version 2.10, the GPU command buffer size must be at least 2 MiB large. Since we use only a small part of the GPU command buffer and don't want to waste precious XDR memory, move the GPU command buffer back to the start of the XDR memory reserved for ps3fb and let the unused part overlap with the actual frame buffer. Signed-off-by: Geert Uytterhoeven Signed-off-by: Linus Torvalds commit 3a6927906f1b2adf5a31b789322d32eb8559ada0 Author: Linus Torvalds Date: Wed Dec 19 14:05:13 2007 -0800 Do dirty page accounting when removing a page from the page cache Krzysztof Oledzki noticed a dirty page accounting leak on some of his machines, causing the machine to eventually lock up when the kernel decided that there was too much dirty data, but nobody could actually write anything out to fix it. The culprit turns out to be filesystems (cough ext3 with data=journal cough) that re-dirty the page when the "->invalidatepage()" callback is called. Fix it up by doing a final dirty page accounting check when we actually remove the page from the page cache. This fixes bugzilla entry 9182: http://bugzilla.kernel.org/show_bug.cgi?id=9182 Tested-by: Ingo Molnar Tested-by: Krzysztof Oledzki Cc: Andrew Morton Cc: Nick Piggin Cc: Peter Zijlstra Signed-off-by: Linus Torvalds commit ed5d4026ae6f51bec25e03a891a7d59c492577ab Author: Hidetoshi Seto Date: Wed Dec 19 11:42:02 2007 -0800 [IA64] Adjust CMCI mask on CPU hotplug Currently CMCI mask of hot-added CPU is always disabled after CPU hotplug. We should adjust this mask depending on CMC polling state. Signed-off-by: Hidetoshi Seto Signed-off-by: Satoru Takeuchi Signed-off-by: Tony Luck commit 285fbd66330cd5899f4e607e3e65ab5921ddabf0 Author: Jan Beulich Date: Wed Dec 19 12:30:30 2007 -0800 [IA64] make flush_tlb_kernel_range() an inline function This fixes an unused variable warning in mm/vmalloc.c. Tony: also fix resulting fallout in uncached.c with a typo in args to flush_tlb_kernel_range(). Signed-off-by: Jan Beulich Signed-off-by: Tony Luck commit 17fbe0043e9d623e46a57b153aa0b80ee9de7790 Author: Simon Horman Date: Mon Nov 12 13:55:21 2007 +0900 [IA64] Guard elfcorehdr_addr with #if CONFIG_PROC_FS Access to elfcorehdr_addr needs to be guarded by #if CONFIG_PROC_FS as well as the existing #if guards. Fixes the following build problem: arch/ia64/hp/common/built-in.o: In function `sba_init':arch/ia64/hp/common/sba_iommu.c:2043: undefined reference to `elfcorehdr_addr' :arch/ia64/hp/common/sba_iommu.c:2043: undefined reference to `elfcorehdr_addr' Signed-off-by: Simon Horman Signed-off-by: Tony Luck commit 64135fa97ce016058f95345425a9ebd04ee1bd2a Author: Russ Anderson Date: Tue Aug 21 16:45:12 2007 -0500 [IA64] Fix Altix BTE error return status The Altix shub2 BTE error detail bits are in a different location than on shub1. The current code does not take this into account resulting in all shub2 BTE failures mapping to "unknown". This patch reads the error detail bits from the proper location, so the correct BTE failure reason is returned for both shub1 and shub2. Signed-off-by: Russ Anderson Signed-off-by: Tony Luck commit 091062284c05d13b3393f4fcfcedc0f52cb948b4 Author: Hidetoshi Seto Date: Wed Dec 12 16:28:52 2007 +0900 [IA64] Remove assembler warnings on head.S This patch removes the following assembler warning messages. AS arch/ia64/kernel/head.o arch/ia64/kernel/head.S: Assembler messages: arch/ia64/kernel/head.S:1179: Warning: Use of 'ld8' violates RAW dependency 'CR[PTA]' (data) arch/ia64/kernel/head.S:1179: Warning: Only the first path encountering the conflict is reported arch/ia64/kernel/head.S:1178: Warning: This is the location of the conflicting usage arch/ia64/kernel/head.S:1180: Warning: Use of 'ld8' violates RAW dependency 'CR[PTA]' (data) arch/ia64/kernel/head.S:1180: Warning: Only the first path encountering the conflict is reported arch/ia64/kernel/head.S:1178: Warning: This is the location of the conflicting usage : arch/ia64/kernel/head.S:1213: Warning: Use of 'ldf.fill.nta' violates RAW dependency 'CR[PTA]' (data) arch/ia64/kernel/head.S:1213: Warning: Only the first path encountering the conflict is reported arch/ia64/kernel/head.S:1178: Warning: This is the location of the conflicting usage Signed-off-by: Hidetoshi Seto Signed-off-by: Tony Luck commit 373167e80c52d65e444dfd40652ca227f5e4c227 Author: Kenji Kaneshige Date: Wed Aug 22 19:28:36 2007 +0900 [IA64] Remove compiler warinings about uninitialized variable in irq_ia64.c This patch removes the following compiler warning messages. CC arch/ia64/kernel/irq_ia64.o arch/ia64/kernel/irq_ia64.c: In function 'create_irq': arch/ia64/kernel/irq_ia64.c:343: warning: 'domain.bits[0u]' may be used uninitialized in this function arch/ia64/kernel/irq_ia64.c: In function 'assign_irq_vector': arch/ia64/kernel/irq_ia64.c:203: warning: 'domain.bits[0u]' may be used uninitialized in this function Signed-off-by: Kenji Kaneshige Signed-off-by: Tony Luck commit e384f41409cb9e543fbc84b375e2ba46cbcbec6a Author: Ian Wienand Date: Tue Nov 20 14:12:46 2007 +1100 [IA64] set_thread_area fails in IA32 chroot I tried to upgrade an IA32 chroot on my IA64 to a new glibc with TLS. It kept dying because set_thread_area was returning -ESRCH (bugs.debian.org/451939). I instrumented arch/ia64/ia32/sys_ia32.c:get_free_idx() and ended up seeing output like [pid] idx desc->a desc->b ----------------------------- [2710] 0 -> c6b0ffff 40dff31b [2710] 1 -> 0 0 [2710] 2 -> 0 0 [2710] 0 -> c6b0ffff 40dff31b [2710] 1 -> c6b0ffff 40dff31b [2710] 2 -> 0 0 [2711] 0 -> c6b0ffff 40dff31b [2711] 1 -> c6b0ffff 40dff31b [2711] 2 -> 48c0ffff 40dff317 which suggested to me that TLS pointers were surviving exec() calls, leading to GDT pointers filling up and the eventual failure of get_free_idx(). I think the solution is flushing the tls array on exec. Signed-Off-By: Ian Wienand Signed-off-by: Tony Luck commit ee211b37aa98123b1d9b19d228011e632a4bbe75 Author: Luck, Tony Date: Tue Dec 18 11:46:38 2007 -0800 [IA64] print kernel release in OOPS to make kerneloops.org happy The ia64 oops message doesn't include the kernel version, which makes it hard to automatically categorize oops messages scraped from mailing lists and bug databases. Signed-off-by: Tony Luck commit 313d8e57b074d5f03dfed2755f21ae41a6f0fd5a Author: Joe Perches Date: Tue Dec 18 17:02:21 2007 -0800 [IA64] Two trivial spelling fixes s/addres/address/ s/performanc/performance/ Signed-off-by: Joe Perches Signed-off-by: Tony Luck commit aec103bfa60e9f72bd66a144236592f54b986a03 Author: de Dinechin, Christophe (Integrity VM) Date: Thu Dec 13 15:03:07 2007 +0000 [IA64] Avoid unnecessary TLB flushes when allocating memory Improve performance of memory allocations on ia64 by avoiding a global TLB purge to purge a single page from the file cache. This happens whenever we evict a page from the buffer cache to make room for some other allocation. Test case: Run 'find /usr -type f | xargs cat > /dev/null' in the background to fill the buffer cache, then run something that uses memory, e.g. 'gmake -j50 install'. Instrumentation showed that the number of global TLB purges went from a few millions down to about 170 over a 12 hours run of the above. The performance impact is particularly noticeable under virtualization, because a virtual TLB is generally both larger and slower to purge than a physical one. Signed-off-by: Christophe de Dinechin Signed-off-by: Tony Luck commit 3cdc7fc7fd5bd1ead75758dfadef609a6e9fd3de Author: Nick Piggin Date: Thu Dec 13 15:58:27 2007 -0800 [IA64] ia32 nopage Convert ia64's ia32 support from nopage to fault. Signed-off-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit 2018df76d276bb4fe97b175bd5db0cdd128dfeb4 Author: Shi Weihua Date: Thu Dec 13 15:58:26 2007 -0800 [IA64] signal: remove redundant code in setup_sigcontext() This patch removes some redundant code in the function setup_sigcontext(). The registers ar.ccv,b7,r14,ar.csd,ar.ssd,r2-r3 and r16-r31 are not restored in restore_sigcontext() when (flags & IA64_SC_FLAG_IN_SYSCALL) is true. So we don't need to zero those variables in setup_sigcontext(). Signed-off-by: Shi Weihua Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit a3ebdb6c423dff420168a3faf25c76e9e5f59258 Author: Christoph Lameter Date: Tue Dec 18 16:22:46 2007 -0800 IA64: Slim down __clear_bit_unlock __clear_bit_unlock does not need to perform atomic operations on the variable. Avoid a cmpxchg and simply do a store with release semantics. Add a barrier to be safe that the compiler does not do funky things. Tony: Use intrinsic rather than inline assembler Signed-off-by: Christoph Lameter Acked-by: Nick Piggin Signed-off-by: Andrew Morton Signed-off-by: Tony Luck commit a169e63740779f62a9a5ddf0aa61091a393a03c5 Author: Boaz Harrosh Date: Mon Dec 17 18:08:59 2007 +0200 [SCSI] initio: bugfix for accessors patch patch: [SCSI] initio: convert to use the data buffer accessors had a small but fatal bug in that it didn't increment the pointer into the initio scatterlist descriptors as it looped over the block generated ones. Fixed here. Signed-off-by: Boaz Harrosh Signed-off-by: James Bottomley commit cd81621c5c5c869b848818b506962dab4499e0d9 Author: FUJITA Tomonori Date: Sat Dec 15 15:51:55 2007 +0900 [SCSI] st: fix kernel BUG at include/linux/scatterlist.h:59! This is caused by a missing scatterlist initialisation (it only shows up when sg list handling debugging is turned on). Signed-off-by: FUJITA Tomonori Cc: Kai Makisara Signed-off-by: James Bottomley commit 99f1f534922a2f2251ba05b14657a1c62882a80e Author: Alan Cox Date: Thu Dec 13 16:14:05 2007 -0800 [SCSI] initio: fix conflict when loading driver > I have a scanner connected to a Initio INI-950 SCSI card and I recently > upgraded from SuSE 10.2 to 10.3. The new kernel doesn't see any of my > devices. I get the following in /var/log/messages: > > ACPI: PCI Interrupt 0000:00:0a.0[A] -> GSI 17 (level, low) -> IRQ 16 > initio: I/O port range 0x0 is busy. > ACPI: PCI interrupt for device 0000:00:0a.0 disabled Humm not a collision - thats a bug in the driver updating. Looks like the changes I made and combined with Christoph's lost a line somewhere when I was merging it all. Signed-off-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: James Bottomley commit cedefa13db502432905c29819c195f46805b13eb Author: Tony Battersby Date: Fri Dec 14 15:45:16 2007 -0500 [SCSI] sym53c8xx: fix "irq X: nobody cared" regression The patch described by the following excerpt from ChangeLog-2.6.24-rc1 eventually causes a "irq X: nobody cared" error after a while: commit 99c9e0a1d6cfe1ba1169a7a81435ee85bc00e4a1 Author: Matthew Wilcox Date: Fri Oct 5 15:55:12 2007 -0400 [SCSI] sym53c8xx: Make interrupt handler capable of returning IRQ_NONE After this happens, the kernel disables the IRQ, causing the SCSI card to stop working until the next reboot. The problem is caused by the interrupt handler returning IRQ_NONE instead of IRQ_HANDLED after handling an interrupt-on-the-fly (INTF) condition. The following patch fixes the problem. Signed-off-by: Tony Battersby Acked-by: Matthew Wilcox Signed-off-by: James Bottomley commit c80ddf00cde4c21018dbd0ea2872736c90c7dda2 Author: James Bottomley Date: Wed Dec 12 15:06:21 2007 -0500 [SCSI] dpt_i2o: driver is only 32 bit so don't set 64 bit DMA mask This fixes a potential corruption bug where the truncation would cause reading or writing to the wrong memory area on machines with >4GB of main memory. Cc: Stable Kernel Tree Signed-off-by: James Bottomley commit 7ee2413ca0da80c819f2388c0faeffce1ac8513b Author: Tony Battersby Date: Tue Nov 6 14:40:54 2007 -0500 [SCSI] sym53c8xx: fix free_irq() regression The following commit changed the pointer passed to request_irq(), but failed to change the pointer passed to free_irq(): commit 99c9e0a1d6cfe1ba1169a7a81435ee85bc00e4a1 Author: Matthew Wilcox Date: Fri Oct 5 15:55:12 2007 -0400 [SCSI] sym53c8xx: Make interrupt handler capable of returning IRQ_NONE ... The result is that free_irq() doesn't actually take any action. This patch fixes it. Signed-off-by: Tony Battersby Acked-by: Christoph Hellwig Signed-off-by: James Bottomley commit 4aae07025265151e3f7041dfbf0f529e122de1d8 Author: Ingo Molnar Date: Tue Dec 18 18:05:58 2007 +0100 x86: fix "Kernel panic - not syncing: IO-APIC + timer doesn't work!" this is the tale of a full day spent debugging an ancient but elusive bug. after booting up thousands of random .config kernels, i finally happened to generate a .config that produced the following rare bootup failure on 32-bit x86: | ..TIMER: vector=0x31 apic1=0 pin1=2 apic2=-1 pin2=-1 | ..MP-BIOS bug: 8254 timer not connected to IO-APIC | ...trying to set up timer (IRQ0) through the 8259A ... failed. | ...trying to set up timer as Virtual Wire IRQ... failed. | ...trying to set up timer as ExtINT IRQ... failed :(. | Kernel panic - not syncing: IO-APIC + timer doesn't work! Boot with apic=debug | and send a report. Then try booting with the 'noapic' option this bug has been reported many times during the years, but it was never reproduced nor fixed. the bug that i hit was extremely sensitive to .config details. First i did a .config-bisection - suspecting some .config detail. That led to CONFIG_X86_MCE: enabling X86_MCE magically made the bug disappear and the system would boot up just fine. Debugging my way through the MCE code ended up identifying two unlikely candidates: the thing that made a real difference to the hang was that X86_MCE did two printks: Intel machine check architecture supported. Intel machine check reporting enabled on CPU#1. Adding the same printks to a !CONFIG_X86_MCE kernel made the bug go away! this left timing as the main suspect: i experimented with adding various udelay()s to the arch/x86/kernel/io_apic_32.c:check_timer() function, and the race window turned out to be narrower than 30 microseconds (!). That made debugging especially funny, debugging without having printk ability before the bug hits is ... interesting ;-) eventually i started suspecting IRQ activities - those are pretty much the only thing that happen this early during bootup and have the timescale of a few dozen microseconds. Also, check_timer() changes the IRQ hardware in various creative ways, so the main candidate became IRQ0 interaction. i've added a counter to track timer irqs (on which core they arrived, at what exact time, etc.) and found that no timer IRQ would arrive after the bug condition hits - even if we re-enable IRQ0 and re-initialize the i8259A, but that we'd get a small number of timer irqs right around the time when we call the check_timer() function. Eventually i got the following backtrace triggered from debug code in the timer interrupt: ...trying to set up timer as Virtual Wire IRQ... failed. ...trying to set up timer as ExtINT IRQ... Pid: 1, comm: swapper Not tainted (2.6.24-rc5 #57) EIP: 0060:[] EFLAGS: 00000246 CPU: 0 EIP is at _spin_unlock_irqrestore+0x5/0x1c EAX: c0634178 EBX: 00000000 ECX: c4947d63 EDX: 00000246 ESI: 00000002 EDI: 00010031 EBP: c04e0f2e ESP: f7c41df4 DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 CR0: 8005003b CR2: ffe04000 CR3: 00630000 CR4: 000006d0 DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 DR6: ffff0ff0 DR7: 00000400 [] setup_IO_APIC+0x9c3/0xc5c the spin_unlock() was called from init_8259A(). Wait ... we have an IRQ0 entry while we are in the middle of setting up the local APIC, the i8259A and the PIT?? That is certainly not how it's supposed to work! check_timer() was supposed to be called with irqs turned off - but this eroded away sometime in the past. This code would still work most of the time because this code runs very quickly, but just the right timing conditions are present and IRQ0 hits in this small, ~30 usecs window, timer irqs stop and the system does not boot up. Also, given how early this is during bootup, the hang is very deterministic - but it would only occur on certain machines (and certain configs). The fix was quite simple: disable/restore interrupts properly in this function. With that in place the test-system now boots up just fine. (64-bit x86 io_apic_64.c had the same bug.) Phew! One down, only 1500 other kernel bugs are left ;-) Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 971e5b35fb02c5088d49e6c024aab73582a35b71 Author: Steven Rostedt Date: Tue Dec 18 18:05:58 2007 +0100 genirq: revert lazy irq disable for simple irqs In commit 76d2160147f43f982dfe881404cfde9fd0a9da21 lazy irq disabling was implemented, and the simple irq handler had a masking set to it. Remy Bohmer discovered that some devices in the ARM architecture would trigger the mask, but never unmask it. His patch to do the unmasking was questioned by Russell King about masking simple irqs to begin with. Looking further, it was discovered that the problems Remy was seeing was due to improper use of the simple handler by devices, and he later submitted patches to fix those. But the issue that was uncovered was that the simple handler should never mask. This patch reverts the masking in the simple handler. Signed-off-by: Steven Rostedt Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner Acked-by: Russell King commit 213fde71024223abcdd7d9e5349d1ea2679227b5 Author: Jan Beulich Date: Tue Dec 18 18:05:58 2007 +0100 x86: also define AT_VECTOR_SIZE_ARCH The patch introducing this left out 64-bit x86 despite it also having extra entries. this solves Xen guest troubles. Signed-off-by: Jan Beulich Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 0b0122faf4833548072d23f3c3063c23bc289746 Author: Masami Hiramatsu Date: Tue Dec 18 18:05:58 2007 +0100 x86: kprobes bugfix Kprobes for x86-64 may cause a kernel crash if it inserted on "iret" instruction. "call absolute" is invalid on x86-64, so we don't need treat it. - Change the processing order as same as x86-32. - Add "iret"(0xcf) case. - Remove next_rip local variable. Signed-off-by: Masami Hiramatsu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 29b6cd794e73eea7600541d06288a09861ffecb0 Author: Masami Hiramatsu Date: Tue Dec 18 18:05:58 2007 +0100 x86: jprobe bugfix jprobe for x86-64 may cause kernel page fault when the jprobe_return() is called from incorrect function. - Use jprobe_saved_regs instead getting it from stack. (Especially on x86-64, it may get incorrect data, because pt_regs can not be get by using container_of(rsp)) - Change the type of stack pointer to unsigned long *. Signed-off-by: Masami Hiramatsu Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b4be625852618636a6b54908c4f9d90fb29dc549 Author: Adrian Bunk Date: Tue Dec 18 18:05:58 2007 +0100 timer: kernel/timer.c section fixes This patch fixes the following section mismatches with CONFIG_HOTPLUG=n, CONFIG_HOTPLUG_CPU=y: ... WARNING: vmlinux.o(.text+0x41cd3): Section mismatch: reference to .init.data:tvec_base_done.22610 (between 'timer_cpu_notify' and 'run_timer_softirq') WARNING: vmlinux.o(.text+0x41d67): Section mismatch: reference to .init.data:tvec_base_done.22610 (between 'timer_cpu_notify' and 'run_timer_softirq') ... Signed-off-by: Adrian Bunk Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit b019e57321f3e006c0ec7a54f13efc377bcb6451 Author: Kevin Hilman Date: Tue Dec 18 18:05:58 2007 +0100 genirq: add unlocked version of set_irq_handler() Add unlocked version for use by irq_chip.set_type handlers which may wish to change handler to level or edge handler when IRQ type is changed. The normal set_irq_handler() call cannot be used because it tries to take irq_desc.lock which is already held when the irq_chip.set_type hook is called. Signed-off-by: Kevin Hilman Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit cdc6f27d9e3c2f7ca1a3e19c6eabb1ad6a2add5d Author: Thomas Gleixner Date: Tue Dec 18 18:05:58 2007 +0100 clockevents: fix reprogramming decision in oneshot broadcast Resolve the following regression of a choppy, almost unusable laptop: http://lkml.org/lkml/2007/12/7/299 http://bugzilla.kernel.org/show_bug.cgi?id=9525 A previous version of the code did the reprogramming of the broadcast device in the return from idle code. This was removed, but the logic in tick_handle_oneshot_broadcast() was kept the same. When a broadcast interrupt happens we signal the expiry to all CPUs which have an expired event. If none of the CPUs has an expired event, which can happen in dyntick mode, then we reprogram the broadcast device. We do not reprogram otherwise, but this is only correct if all CPUs, which are in the idle broadcast state have been woken up. The code ignores, that there might be pending not yet expired events on other CPUs, which are in the idle broadcast state. So the delivery of those events can be delayed for quite a time. Change the tick_handle_oneshot_broadcast() function to check for CPUs, which are in broadcast state and are not woken up by the current event, and enforce the rearming of the broadcast device for those CPUs. Signed-off-by: Thomas Gleixner Signed-off-by: Ingo Molnar commit bd87f1f028ddaad45d4a9a3621dfe688c840ba41 Author: Barry Kasindorf Date: Tue Dec 18 18:05:58 2007 +0100 oprofile: op_model_athlon.c support for AMD family 10h barcelona performance counters This patch is for controlling the upper 32bits of the event ctrl msrs. This includes the upper 4 bits of the event select and the Guest Only and Host Only bits This patch is necessary to make Event Based Profiling work reliably on a Family 10h processor [akpm@linux-foundation.org: checkpatch.pl fixes] Signed-off-by: Barry Kasindorf Signed-off-by: Robert Richter Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar Signed-off-by: Thomas Gleixner commit 6cbf1c126cf6a727287d61b122fde00a8b827bfe Author: Ingo Molnar Date: Tue Dec 18 15:21:13 2007 +0100 sched: do not hurt SCHED_BATCH on wakeup measurements by Yanmin Zhang have shown that SCHED_BATCH tasks benefit if they run the same place_entity() logic as SCHED_OTHER tasks - so uniformize behavior in this area. Signed-off-by: Ingo Molnar commit 2bacec8c318ca0418c0ee9ac662ee44207765dd4 Author: Ingo Molnar Date: Tue Dec 18 15:21:13 2007 +0100 sched: touch softlockup watchdog after idling touch softlockup watchdog after idling. Signed-off-by: Ingo Molnar commit 73c4efd2c88a41c8a4810904266a34423b5584e5 Author: Eric Dumazet Date: Tue Dec 18 15:21:13 2007 +0100 sched: sysctl, proc_dointvec_minmax() expects int values for min_sched_granularity_ns, max_sched_granularity_ns, min_wakeup_granularity_ns and max_wakeup_granularity_ns are declared "unsigned long". This is incorrect since proc_dointvec_minmax() expects plain "int" guard values. This bug only triggers on big endian 64 bit arches. Signed-off-by: Eric Dumazet Signed-off-by: Ingo Molnar commit c7af77b584b02d3e321b00203a618a9c93782121 Author: Livio Soares Date: Tue Dec 18 15:21:13 2007 +0100 sched: mark rwsem functions as __sched for wchan/profiling This following commit http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=fdf8cb0909b531f9ae8f9b9d7e4eb35ba3505f07 un-inlined a low-level rwsem function, but did not mark it as __sched. The result is that it now shows up as thread wchan (which also affects /proc/profile stats). The following simple patch fixes this by properly marking rwsem_down_failed_common() as a __sched function. Also in this patch, which is up for discussion, marks down_read() and down_write() proper as __sched. For profiling, it is pretty much useless to know that a semaphore is beig help - it is necessary to know _which_ one. By going up another frame on the stack, the information becomes much more useful. In summary, the below change to lib/rwsem.c should be applied; the changes to kernel/rwsem.c could be applied if other kernel hackers agree with my proposal that down_read()/down_write() in the profile is not enough. [ akpm@linux-foundation.org: build fix ] Signed-off-by: Livio Soares Signed-off-by: Andrew Morton Signed-off-by: Ingo Molnar commit 051a1d1afa47206e23ae03f781c6795ce870e3d5 Author: Dmitry Adamushko Date: Tue Dec 18 15:21:13 2007 +0100 sched: fix crash on ia64, introduce task_current() Some services (e.g. sched_setscheduler(), rt_mutex_setprio() and sched_move_task()) must handle a given task differently in case it's the 'rq->curr' task on its run-queue. The task_running() interface is not suitable for determining such tasks for platforms with one of the following options: #define __ARCH_WANT_UNLOCKED_CTXSW #define __ARCH_WANT_INTERRUPTS_ON_CTXSW Due to the fact that it makes use of 'p->oncpu == 1' as a criterion but such a task is not necessarily 'rq->curr'. The detailed explanation is available here: https://lists.linux-foundation.org/pipermail/containers/2007-December/009262.html Signed-off-by: Dmitry Adamushko Signed-off-by: Ingo Molnar Tested-by: Dhaval Giani Tested-by: KAMEZAWA Hiroyuki commit 458cf5e9b666c251b04cb5242fb19fd5114645ba Author: Randy Dunlap Date: Mon Dec 17 20:24:20 2007 +0100 Cleanup umem driver: fix most checkpatch warnings, conform to kernel coding style. linux-2.6.24-rc5-git3> checkpatch.pl-next patches/block-umem-ckpatch.patch total: 0 errors, 5 warnings, 530 lines checked All of these are line-length warnings. Only change in generated object file is due to not initializing a static global variable to 0. Signed-off-by: Randy Dunlap Signed-off-by: Jens Axboe commit 2fdd82bd8852ec8ebad5c69c45138da25c6f9273 Author: Adrian Bunk Date: Wed Dec 12 18:51:56 2007 +0100 block: let elv_register() return void elv_register() always returns 0, and there isn't anything it does where it should return an error (the only error condition is so grave that it's handled with a BUG_ON). Signed-off-by: Adrian Bunk Signed-off-by: Jens Axboe commit 49565124b13bb16607e7f8fc8fb1d9c5c355a1a3 Author: Aaron Carroll Date: Wed Dec 5 21:07:07 2007 +1100 as-iosched: fix write batch start point New write batches currently start from where the last one completed. We have no idea where the head is after switching batches, so this makes little sense. Instead, start the next batch from the request with the earliest deadline in the hope that we avoid a deadline expiry later on. Signed-off-by: Aaron Carroll Acked-by: Nick Piggin Signed-off-by: Jens Axboe commit 8896f3c039b0834ba695d154299b724ee5710b97 Author: Aaron Carroll Date: Wed Dec 5 21:06:50 2007 +1100 as-iosched: fix incorrect comments Two comments refer to deadlines applying to reads only. This is not the case. Signed-off-by: Aaron Carroll Acked-by: Nick Piggin Signed-off-by: Jens Axboe commit 24bb8fb99a062213424d3e88842eb07f693378be Author: Tejun Heo Date: Wed Dec 5 21:28:24 2007 +0100 block: use jiffies conversion functions in scsi_ioctl.c Use msecs_to_jiffies() and jiffies_to_msecs() in scsi_ioctl(). Sometimes callers use very large values for e.g. vendor specific media clear command and calculation can overflow. Signed-off-by: Tejun Heo Signed-off-by: Jens Axboe commit 041388b54ed95cd169546bd83bacd08ee32bd7ea Author: Lachlan McIlroy Date: Tue Dec 18 16:19:34 2007 +1100 [XFS] Put the correct offset in dirent d_off The recent filldir regression fix was not putting the correct d_off in each dirent. This was resulting in incorrect cookies being passed to dmapi ioctls and the wrong offset appearing in the dirents. readdir was unaffected as the filp->f_pos was being updated with the correct offset and this was being written into the last dirent in each buffer. Fix the XFS code to do the right thing. SGI-PV: 973746 SGI-Modid: xfs-linux-melb:xfs-kern:30240a Signed-off-by: David Chinner Signed-off-by: Christoph Hellwig Signed-off-by: Lachlan McIlroy commit c734c79bc397eace039bea406997efa89f879c14 Author: Lachlan McIlroy Date: Tue Dec 18 16:17:41 2007 +1100 [XFS] Don't wait for pending I/Os when purging blocks beyond eof. On last close of a file we purge blocks beyond eof. The same code is used when we truncate the file size down. In this case we need to wait for any pending I/Os for dirty pages beyond the new eof. For the last close case we are not changing the file size and therefore do not need to wait for any I/Os to complete. This fixes a performance bottleneck where writes into the page cache and cache flushes can become mutually exclusive. SGI-PV: 964002 SGI-Modid: xfs-linux-melb:xfs-kern:30220a Signed-off-by: Lachlan McIlroy Signed-off-by: Peter Leckie commit 64396accc2831fcbdc7d793edc25481a5ebc75b2 Author: Eric W. Biederman Date: Mon Dec 17 16:20:28 2007 -0800 sysctl: fix ax25 checks Fix: sysctl table check failed: /net/ax25/ax0/ax25_default_mode .3.9.1.2 Unknown sysctl binary path Pid: 2936, comm: kissattach Not tainted 2.6.24-rc5 #1 [] set_fail+0x3b/0x43 [] sysctl_check_table+0x408/0x456 [] sysctl_check_table+0x41c/0x456 [] sysctl_check_table+0x41c/0x456 ... Signed-off-by: Eric W. Biederman Cc: Bernard Pidoux Cc: "David S. Miller" Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 421d99193537a6522aac2148286f08792167d5fd Author: Christoph Lameter Date: Mon Dec 17 16:20:27 2007 -0800 quicklist: Set tlb->need_flush if pages are remaining in quicklist 0 This ensures that the quicklists are drained. Otherwise draining may only occur when the processor reaches an idle state. Fixes fatal leakage of pgd_t's on 2.6.22 and later. Signed-off-by: Christoph Lameter Reported-by: Dhaval Giani Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 3811dbf67162bd08412f1b0e02e554f353e93bdb Author: Christoph Lameter Date: Mon Dec 17 16:20:27 2007 -0800 SLUB: remove useless masking of GFP_ZERO Remove a recently added useless masking of GFP_ZERO. GFP_ZERO is already masked out in new_slab() (See how it calls allocate_slab). No need to do it twice. This reverts the SLUB parts of 7fd272550bd43cc1d7289ef0ab2fa50de137e767. Cc: Matt Mackall Reviewed-by: Pekka Enberg Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 087ee8d5bec1aa6d0a1dfe3067c7298375462ceb Author: Jan Kara Date: Mon Dec 17 16:20:26 2007 -0800 Fix compilation warning in dquot.c Fix compilation warning about discarded const. Signed-off-by: Jan Kara Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d5dbac87b4343d98ae509fb787efb77f8ddc484b Author: Nishanth Aravamudan Date: Mon Dec 17 16:20:25 2007 -0800 Documentation: update hugetlb information The hugetlb documentation has gotten a bit out of sync with the current code. Updated the sysctl file to refer to Documentation/vm/hugetlbpage.txt. Update that file to contain the current state of affairs (with the newer named sysctl in place). Signed-off-by: Nishanth Aravamudan Acked-by: Adam Litke Cc: William Lee Irwin III Cc: Dave Hansen Cc: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 368d2c6358c3c62b3820a8a73f9fe9c8b540cdea Author: Nishanth Aravamudan Date: Mon Dec 17 16:20:22 2007 -0800 Revert "hugetlb: Add hugetlb_dynamic_pool sysctl" This reverts commit 54f9f80d6543fb7b157d3b11e2e7911dc1379790 ("hugetlb: Add hugetlb_dynamic_pool sysctl") Given the new sysctl nr_overcommit_hugepages, the boolean dynamic pool sysctl is not needed, as its semantics can be expressed by 0 in the overcommit sysctl (no dynamic pool) and non-0 in the overcommit sysctl (pool enabled). (Needed in 2.6.24 since it reverts a post-2.6.23 userspace-visible change) Signed-off-by: Nishanth Aravamudan Acked-by: Adam Litke Cc: William Lee Irwin III Cc: Dave Hansen Cc: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d1c3fb1f8f29c41b0d098d7cfb3c32939043631f Author: Nishanth Aravamudan Date: Mon Dec 17 16:20:12 2007 -0800 hugetlb: introduce nr_overcommit_hugepages sysctl hugetlb: introduce nr_overcommit_hugepages sysctl While examining the code to support /proc/sys/vm/hugetlb_dynamic_pool, I became convinced that having a boolean sysctl was insufficient: 1) To support per-node control of hugepages, I have previously submitted patches to add a sysfs attribute related to nr_hugepages. However, with a boolean global value and per-mount quota enforcement constraining the dynamic pool, adding corresponding control of the dynamic pool on a per-node basis seems inconsistent to me. 2) Administration of the hugetlb dynamic pool with multiple hugetlbfs mount points is, arguably, more arduous than it needs to be. Each quota would need to be set separately, and the sum would need to be monitored. To ease the administration, and to help make the way for per-node control of the static & dynamic hugepage pool, I added a separate sysctl, nr_overcommit_hugepages. This value serves as a high watermark for the overall hugepage pool, while nr_hugepages serves as a low watermark. The boolean sysctl can then be removed, as the condition nr_overcommit_hugepages > 0 indicates the same administrative setting as hugetlb_dynamic_pool == 1 Quotas still serve as local enforcement of the size of the pool on a per-mount basis. A few caveats: 1) There is a race whereby the global surplus huge page counter is incremented before a hugepage has allocated. Another process could then try grow the pool, and fail to convert a surplus huge page to a normal huge page and instead allocate a fresh huge page. I believe this is benign, as no memory is leaked (the actual pages are still tracked correctly) and the counters won't go out of sync. 2) Shrinking the static pool while a surplus is in effect will allow the number of surplus huge pages to exceed the overcommit value. As long as this condition holds, however, no more surplus huge pages will be allowed on the system until one of the two sysctls are increased sufficiently, or the surplus huge pages go out of use and are freed. Successfully tested on x86_64 with the current libhugetlbfs snapshot, modified to use the new sysctl. Signed-off-by: Nishanth Aravamudan Acked-by: Adam Litke Cc: William Lee Irwin III Cc: Dave Hansen Cc: David Gibson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7a3f595cc8298df14a7c71b0d876bafd8e9e1cbf Author: Eric Sandeen Date: Mon Dec 17 16:20:10 2007 -0800 ecryptfs: fix fsx data corruption problems ecryptfs in 2.6.24-rc3 wasn't surviving fsx for me at all, dying after 4 ops. Generally, encountering problems with stale data and improperly zeroed pages. An extending truncate + write for example would expose stale data. With the changes below I got to a million ops and beyond with all mmap ops disabled - mmap still needs work. (A version of this patch on a RHEL5 kernel ran for over 110 million fsx ops) I added a few comments as well, to the best of my understanding as I read through the code. Signed-off-by: Eric Sandeen Acked-by: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8998979cc1f90da5a48b2e8a13833217c63f7c4a Author: Nathan Lynch Date: Mon Dec 17 16:20:09 2007 -0800 fix bloat-o-meter for ppc64 bloat-o-meter assumes that a '.' anywhere in a symbol's name means that it is static and prepends 'static.' to the first part of the symbol name, discarding the portion of the name that follows the '.'. However, the names of function entry points begin with '.' in the ppc64 ABI. This causes all function text size changes to be accounted to a single 'static.' entry in the output when comparing ppc64 kernels. Change getsizes() to ignore the first character of the symbol name when searching for '.'. Signed-off-by: Nathan Lynch Cc: Matt Mackall Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bb8e8bcce7eceacb52eb0a3ebb64202ad6bcc438 Author: Shannon Nelson Date: Mon Dec 17 16:20:08 2007 -0800 I/OAT: fix null device in call to dev_err() We can't use the device in a dev_err() after a kzalloc failure or after the kfree, so simplify it to the pdev that was originally passed in. Cc: Eric Sesterhenn Signed-off-by: Shannon Nelson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 711924b1052a280bd2452c3babb9816e4a77c723 Author: Shannon Nelson Date: Mon Dec 17 16:20:08 2007 -0800 I/OAT: fixups from code comments A few fixups from Andrew's code comments. - removed "static inline" forward-declares - changed use of min() to min_t() - removed some unnecessary NULL initializations - removed a couple of BUG() calls Fixes this: drivers/dma/ioat_dma.c: In function `ioat1_tx_submit': drivers/dma/ioat_dma.c:177: sorry, unimplemented: inlining failed in call to '__ioat1_dma_memcpy_issue_pending': function body not available drivers/dma/ioat_dma.c:268: sorry, unimplemented: called from here Signed-off-by: Shannon Nelson Cc: "Williams, Dan J" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 7c9e70efbfc3186674d93451e0fbf18365347b4d Author: Eric Sandeen Date: Mon Dec 17 16:20:07 2007 -0800 ecryptfs: set s_blocksize from lower fs in sb eCryptfs wasn't setting s_blocksize in it's superblock; just pick it up from the lower FS. Having an s_blocksize of 0 made things like "filefrag" which call FIGETBSZ unhappy. Signed-off-by: Eric Sandeen Acked-by: Mike Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 81eabcbe0b991ddef5216f30ae91c4b226d54b6d Author: Mel Gorman Date: Mon Dec 17 16:20:05 2007 -0800 mm: fix page allocation for larger I/O segments In some cases the IO subsystem is able to merge requests if the pages are adjacent in physical memory. This was achieved in the allocator by having expand() return pages in physically contiguous order in situations were a large buddy was split. However, list-based anti-fragmentation changed the order pages were returned in to avoid searching in buffered_rmqueue() for a page of the appropriate migrate type. This patch restores behaviour of rmqueue_bulk() preserving the physical order of pages returned by the allocator without incurring increased search costs for anti-fragmentation. Signed-off-by: Mel Gorman Cc: James Bottomley Cc: Jens Axboe Cc: Mark Lord Signed-off-by: Linus Torvalds commit 8d936626dd00bd47cf574add458fea8a23b79611 Author: Adam Jackson Date: Mon Dec 17 16:20:04 2007 -0800 apm_event{,info}_t are userspace types These types define the size of data read from /dev/apm_bios. They should not be hidden behind #ifdef __KERNEL__. This is killing my xserver compile, apm_event_t is used in the xserver source. Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a33234735b2bcfb23cf1facb1f0d8656b8edab8f Author: Adrian Bunk Date: Mon Dec 17 16:20:03 2007 -0800 drivers/cpufreq/cpufreq_stats.c section fix cpufreq_stats_free_table() mustn't be __cpuexit since it's called by the __cpuinit cpufreq_stat_cpu_callback(). This patch fixes the following section mismatch reported by Chris Clayton: WARNING: vmlinux.o(.init.text+0x143dd): Section mismatch: reference to .exit.text:cpufreq_stats_free_table (between 'cpufreq_stat_cpu_callback' and 'cpufreq_stats_init') Signed-off-by: Adrian Bunk Cc: Chris Clayton Acked-by: Dave Jones Cc: Russell King Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 771cceb464874d4a22efd4a600e4597ad3f2fc9e Author: Julia Lawall Date: Mon Dec 17 16:20:02 2007 -0800 drivers/macintosh/via-pmu.c: Added a missing iounmap The error handling code should undo the ioremap as well. The problem was detected using the following semantic match (http://www.emn.fr/x-info/coccinelle/) // @@ type T,T1,T2; identifier E; statement S; expression x1,x2; constant C; int ret; @@ T E; ... * E = ioremap(...); if (E == NULL) S ... when != iounmap(E) when != if (E != NULL) { ... iounmap(E); ...} when != x1 = (T1)E if (...) { ... when != iounmap(E) when != if (E != NULL) { ... iounmap(E); ...} when != x2 = (T2)E ( * return; | * return C; | * return ret; ) } // Signed-off-by: Julia Lawall Cc: Johannes Berg Cc: Olaf Hering Cc: Benjamin Herrenschmidt Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit d17a18dd92c91c784fcf7c785fa6bbf178fd0a6d Author: Dave Young Date: Mon Dec 17 16:20:00 2007 -0800 pktcdvd: add kobject_put when kobject register fails In kobject_register, the kobject reference is get in kobject_init, and then kobject_add. If kobject_add fail, it will only cleanup the reference got by itself. Signed-off-by: Dave Young Reviewed-by: Pekka Enberg Cc: Greg KH Cc: Peter Osterlund Cc: Jens Axboe Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bbd0682596f7a434467ee551fee18d5f0b818539 Author: WANG Cong Date: Mon Dec 17 16:19:59 2007 -0800 mm/sparse.c: improve the error handling for sparse_add_one_section() Improve the error handling for mm/sparse.c::sparse_add_one_section(). And I see no reason to check 'usemap' until holding the 'pgdat_resize_lock'. [geoffrey.levand@am.sony.com: sparse_index_init() returns -EEXIST] Cc: Christoph Lameter Acked-by: Dave Hansen Cc: Rik van Riel Acked-by: Yasunori Goto Cc: Andy Whitcroft Signed-off-by: WANG Cong Signed-off-by: Geoff Levand Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit af0cd5a7c3cded50c25e98acd94912d17a0eb914 Author: WANG Cong Date: Mon Dec 17 16:19:58 2007 -0800 mm/sparse.c: check the return value of sparse_index_alloc() Since sparse_index_alloc() can return NULL on memory allocation failure, we must deal with the failure condition when calling it. Signed-off-by: WANG Cong Cc: Christoph Lameter Cc: Rik van Riel Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit bd6cba53c524dccf72900435d29722b22f61d835 Author: Dave Jones Date: Mon Dec 17 16:19:58 2007 -0800 cpufreq: fix missing unlocks in cpufreq_add_dev error paths. Ingo hit some BUG_ONs that were probably caused by these missing unlocks causing an unbalance. He couldn't reproduce the bug reliably, so it's unknown that it's definitly fixing the problem he hit, but it's a fairly good chance, and this fixes an obvious bug. [ Dave: "Ingo followed up that he hit some lockdep related output with this applied, so it may not be right. I'll look at it after xmas if no-one has it figured out before then." Akpm: "It looks pretty correct to me though." ] Signed-off-by: Dave Jones Cc: Ingo Molnar Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9548b209a37397f3036aa5bd3d5b4d3b725aa11a Author: Ivan Kokshaysky Date: Mon Dec 17 16:19:57 2007 -0800 alpha: build fixes This fixes some of the alpha-specific build problems, except a) modpost warning about COMMON symbol "saved_config" and b) nasty final link failure with gcc-4.x, -Os and scsi-disk driver configured built-in (due to jump table in .rodata referencing discarded .exit.text). - build failure with gcc-4.2.x: fix up casts in cia_io* routines to avoid warnings ('discards qualifiers from pointer target type'), which are failures, thanks to -Werror; - modpost warnings: add missing __init qualifier for titan and marvel; for non-generic build, move machine vectors from .data to .data.init.refok section; - unbreak CPU-specific optimization: rearrange cpuflags-y assignments so that extended -mcpu value (ev56, pca56, ev67) overrides basic one (ev5, ev6) and not vice versa. Signed-off-by: Ivan Kokshaysky Cc: Richard Henderson Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit b47b6f38e5202c924bfe7632dce5dda4e3d40731 Author: Andries E. Brouwer Date: Mon Dec 17 16:19:55 2007 -0800 ext3, ext4: avoid divide by zero As it turns out, the kernel divides by EXT3_INODES_PER_GROUP(s) when mounting an ext3 filesystem. If that number is zero, a crash follows. Below a patch. This crash was reported by Joeri de Ruiter, Carst Tankink and Pim Vullers. Cc: Acked-by: Alan Cox Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 9e2de407bec98fb07040f658f55fb71ba1b594f5 Author: Uwe Kleine-König Date: Mon Dec 17 16:19:54 2007 -0800 fs/Kconfig: grammar fix This was introduced in 4af8e944c22d8af92a7548354a9567250cc1a782 Signed-off-by: Uwe Kleine-König Cc: David Woodhouse Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit a5ee6daa525c04079baee6f393c0b2dab3f61253 Author: Geoff Levand Date: Mon Dec 17 16:19:53 2007 -0800 sparsemem: make SPARSEMEM_VMEMMAP selectable SPARSEMEM_VMEMMAP needs to be a selectable config option to support building the kernel both with and without sparsemem vmemmap support. This selection is desirable for platforms which could be configured one way for platform specific builds and the other for multi-platform builds. Signed-off-by: Miguel Botón Signed-off-by: Geoff Levand Acked-by: Yasunori Goto Cc: Christoph Lameter Cc: Andy Whitcroft Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 2e12a7fb0d79d011ff9e0b09b53ca4438e5604de Author: Sheela Date: Mon Dec 17 16:19:53 2007 -0800 Fix lguest documentation Share net is not supported, Rusty is an "idiot" . Signed-off-by: Sheela Sequeira Reviewed-by: James Morris Acked-by: Rusty Russell Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 459e216429a04779216b61f0fb61938a459fd1ca Author: Eric Sandeen Date: Mon Dec 17 16:19:52 2007 -0800 ecryptfs: initialize new auth_tokens before teardown ecryptfs_destroy_mount_crypt_stat() checks whether each auth_tok->global_auth_tok_key is nonzero and if so puts that key. However, in some early mount error paths nothing has initialized the pointer, and we try to key_put() garbage. Running the bad cipher tests in the testsuite exposes this, and it's happy with the following change. Signed-off-by: Eric Sandeen Cc: Michael Halcrow Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 60af880339aae440293a0c8e93178fdcb41f8a29 Author: Eric Dumazet Date: Mon Dec 17 16:19:51 2007 -0800 parport: "dev->timeslice" is an unsigned long, not an int While auditing proc_doulongvec_ms_jiffies_minmax() usage in kernel, I found a bug in drivers/parport/procfs.c, incorrectly using sizeof(int) instead of sizeof(unsigned long) Only 64bit arches are affected by this old bug. Signed-off-by: Eric Dumazet Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 8d431dbef4e63d54f1965c3ed6ca5f91ee4512de Author: David Brownell Date: Mon Dec 17 16:19:50 2007 -0800 rtc-at32ap700x: fix irq init oops Reorder at32_rtc_probe() so that it's safe (no oopsing) to fire the IRQ handler the instant that it's registered. (Bug noted via "Debug shared IRQ handlers" kernel debug option.) Signed-off-by: David Brownell Cc: Alessandro Zummo Cc: Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit fe4304baf26e9580ada52e4579b1b7273434d8dd Author: Ivan Kokshaysky Date: Mon Dec 17 16:19:48 2007 -0800 alpha: strncpy/strncat fixes First of all, thanks to Bob Tracy and Michael Cree for testing. Especially to Bob, as he has done titanic multi-day git-bisect work that finally helped to reproduce and nail down the bug (http://bugzilla.kernel.org/show_bug.cgi?id=9457). [ev6-]stxncpy.S: it's t12, not t2 register that is supposed to contain the last byte offset upon return. As a result of wrong register use (which was my fault back in 2003, IIRC), under some circumstances extra terminating zero bytes were added to destination string. This particularly led to incorrect DEVPATH strings generated in uevent and therefore to udev problems. strncpy.S: unrelated bug I found while testing the above fix - destination is not properly zero-padded then a byte count exceeds source length. Actually this is addition to strncpy fix from last year. Signed-off-by: Ivan Kokshaysky Cc: Richard Henderson Cc: Bob Tracy Cc: Michael Cree Cc: Kay Sievers Cc: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 4dbed85a35ed37d9608f4f32e5d69efa775d6223 Author: Stanislaw Gruszka Date: Mon Dec 17 16:19:46 2007 -0800 uml: stop gdb from deleting breakpoints when running UML Sometimes when UML is debugged gdb miss breakpoints. When process traced by gdb do fork, debugger remove breakpoints from child address space. There is possibility to trace more than one fork, but this not work with UML, I guess (only guess) there is a deadlock - gdb waits for UML and UML waits for gdb. When clone() is called with SIGCHLD and CLONE_VM flags, gdb see this as PTRACE_EVENT_FORK not as PTRACE_EVENT_CLONE and remove breakpoints from child and at the same time from traced process, because either have the same address space. Maybe it is possible to do fix in gdb, but I'm not sure if there is easy way to find out if traced and child processes share memory. So I do fix for UML, it simply do not call clone() with both SIGCHLD and CLONE_VM flags together. Additionally __WALL flag is used for waitpid() to assure not miss clone and normal process events. [ jdike - checkpatch fixes ] Signed-off-by: Stanislaw Gruszka Signed-off-by: Jeff Dike Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 5867a78f41f84e5388448da62c183255dc22601f Author: Andrew Morton Date: Mon Dec 17 16:19:45 2007 -0800 revert "Hibernation: Use temporary page tables for kernel text mapping on x86_64" Revert commit efa4d2fb047b25a6be67fe92178a2a78da6b3f6a ("Hibernation: Use temporary page tables for kernel text mapping on x86_64") because it causes my t61p to reboot right at the end of resume-from-disk. For reasons unknown at this time. Cc: Pavel Machek Cc: Andi Kleen Cc: Thomas Gleixner Cc: Ingo Molnar Acked-by: "Rafael J. Wysocki" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 755271358cc401eb3db0db52b2c8fb8d71ae4d8f Author: Andrew Morton Date: Mon Dec 17 16:19:44 2007 -0800 fix headers_install make[3]: *** No rule to make target `/usr/src/devel/include/linux/ticable.h', needed by `/usr/src/devel/usr/include/linux/ticable.h'. Stop. Signed-off-by: Andrew Morton Acked-by: Greg Kroah-Hartman Signed-off-by: Linus Torvalds commit 140b5e59119a172a91b5fa13d54ca4f79bbefee1 Author: Tejun Heo Date: Wed Dec 12 12:21:52 2007 +0900 libata: fix ATAPI draining With ATAPI transfer chunk size properly programmed, libata PIO HSM should be able to handle full spurious data chunks. Also, it's a good idea to suppress trailing data warning for misc ATAPI commands as there can be many of them per command - for example, if the chunk size is 16 and the drive tries to transfer 510 bytes, there can be 31 trailing data messages. This patch makes the following updates to libata ATAPI PIO HSM implementation. * Make it drain full spurious chunks. * Suppress trailing data warning message for misc commands. * Put limit on how many bytes can be drained. * If odd, round up consumed bytes and the number of bytes to be drained. This gets the number of bytes to drain right for drivers which do 16bit PIO. This patch is partial backport of improve-ATAPI-data-xfer patchset pending for #upstream. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit f2dfc1a12bb1a029df62b018a8e1882e91041025 Author: Tejun Heo Date: Wed Dec 12 12:12:46 2007 +0900 libata: update atapi_eh_request_sense() such that lbam/lbah contains buffer size While updating lbam/h for ATAPI commands, atapi_eh_request_sense() was left out. Update it. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 3264a8d8f95348e05cc6ac1ce747a8339ed7ab08 Author: Tejun Heo Date: Sat Dec 15 15:05:06 2007 +0900 libata-acpi: implement _GTF command filtering Implement _GTF command filtering which can be controlled by libata.acpi_filter kernel parameter. Currently SETXFER and LOCK commands are filtered. libata configures transfer mode by itself and _GTF SETXFER commands can potentially disrupt device configuration. _GTM/_STM mechanism can't handle hotplugging too well and when _GTF is executed, controller is in PIO0 rather than the mode _STM configured. Note that detecting SET MAX LOCK requires looking at the previous command. This adds a bit to code complexity. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 0e8634bf8e48e50aa96c7e7becafcf9d98c1a28d Author: Tejun Heo Date: Sat Dec 15 15:05:05 2007 +0900 libata-acpi: improve _GTF execution error handling and reporting As _GTF commands can't transfer data, device error never signals transfer error. It indicates that the device vetoed the operation, so it's meaningless to retry. This patch makes libata-acpi to report and continue on device errors when executing _GTF commands. Also commands rejected by device don't contribute to the number of _GTF commands executed. While at it, update _GTF execution reporting such that all successful commands are logged at KERN_DEBUG and rename taskfile_load_raw() to ata_acpi_run_tf() for consistency. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 66fa7f2158e84530aa4a1839a3500d6bdb231301 Author: Tejun Heo Date: Sat Dec 15 15:05:04 2007 +0900 libata-acpi: improve ACPI disabling * If _GTF evalution fails, it's pointless to retry. If nothing else is wrong, just ignore the error. * After disabling ACPI, return success iff the number of executed _GTF command equals zero. Otherwise, tell EH to retry. This change fixes bogus 1 return bug where ata_acpi_on_devcfg() expects the caller to reload IDENTIFY data and continue but the caller interprets it as an error. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 398e07826b24cbeb5ff2f0a178367fc9d24cd475 Author: Tejun Heo Date: Sat Dec 15 15:05:03 2007 +0900 libata-acpi: implement dev->gtf_cache and evaluate _GTF right after _STM during resume On certain implementations, _GTF evaluation depends on preceding _STM and both can be pretty picky about the configuration. Using _GTM result cached during controller initialization satisfies the most neurotic _STM implementation. However, libata evaluates _GTF after reset during device configuration and the hardware state can be different from what _GTF expects and can cause evaluation failure. This patch adds dev->gtf_cache and updates ata_dev_get_GTF() such that it uses the cached value if available. Cache is cleared with a call to ata_acpi_clear_gtf(). Because for SATA ACPI nodes _GTF must be evaluated after _SDD which can't be done till IDENTIFY is complete, _GTF caching from ata_acpi_on_resume() is used only for IDE ACPI nodes. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c05e6ff035c1b25d17364a685432b33937d3dc23 Author: Tejun Heo Date: Sat Dec 15 15:05:02 2007 +0900 libata-acpi: implement and use ata_acpi_init_gtm() _GTM fetches currently configured transfer mode while _STM configures controller according to _GTM parameter and prepares transfer mode configuration TFs for _GTF. In many cases _GTM and _STM implementations are quite brittle and can't cope with configuration changed by libata. libata does not depend on ATA ACPI to configure devices. The only reason libata performs _GTM and _STM are to make _GTF evaluation succeed and libata also doesn't care about how _GTF TFs configure transfer mode. It overrides that configuration anyway, so from libata's POV, it doesn't matter what value is feeded to _STM as long as evaluation succeeds for _STM and following _GTF. This patch adds dev->__acpi_init_gtm and store initial _GTM values on host initialization before modified by reset and mode configuration. If the field is valid, ata_acpi_init_gtm() returns pointer to the saved _GTM structure; otherwise, NULL. This saved value is used for _STM during resume and peek at BIOS/firmware programmed initial timing for later use. The accessor is there to make building w/o ACPI easy as dev->__acpi_init doesn't exist if ACPI is not enabled. On driver detach, the initial BIOS configuration is restored by executing _STM with the initial _GTM values such that the next driver can also use the initial BIOS configured values. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 562f0c2d771ee7be6b37fe015f94a929f8056120 Author: Tejun Heo Date: Sat Dec 15 15:05:01 2007 +0900 libata-acpi: add new hooks ata_acpi_dissociate() and ata_acpi_on_disable() Add two hooks - ata_acpi_dissociate() which is called during driver detach after the whole host is shutdown and ata_acpi_on_disable() which is called when a device is disabled. Signed-off-by: Tejun heo Signed-off-by: Jeff Garzik commit 7f9ad9b8b96855f529f4fe9db0bf32cd3f14c01b Author: Tejun Heo Date: Sat Dec 15 15:05:00 2007 +0900 libata: ata_dev_disable() should be called from EH context ata_port_detach() calls ata_dev_disable() with host lock held but ata_dev_disable() should be called from EH context. ata_port_detach() steals EH context by setting ATA_PFLAG_UNLOADAING and flushing EH. Drop locking around ata_dev_disable() and note that ata_port_detach() owns EH context at that point. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit ce2e0abbd31b047ac7be740d28ef710f5bbdb105 Author: Tejun Heo Date: Sat Dec 15 15:04:59 2007 +0900 libata: add more opcodes to ata.h Add constants for DEVICE CONFIGURATION OVERLAY and SET_MAX to include/linux/ata.h. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit c2e366a107e511ad00c2181c52e4150fc086ec0f Author: Tejun Heo Date: Sat Dec 15 15:04:58 2007 +0900 libata: update ata_*_printk() macros such that level can be a variable Make prink helpers format @lv together rather than prepending to the format string as constant. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 0d02f0b22b678b9d6c8ac8cad7b4cfbbdf6fab18 Author: Tejun Heo Date: Sat Dec 15 15:04:57 2007 +0900 libata-acpi: adjust constness in ata_acpi_gtm/stm() parameters * No internal function uses const ata_port. Drop const from @ap. * Make ata_acpi_stm() copy @stm before using it and change @stm to const. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 4e5200334e03e5620aa19d538300c13db270a063 Author: Mark Lord Date: Tue Dec 11 12:58:05 2007 -0500 sata_mv: improve warnings about Highpoint RocketRAID 23xx cards Improve the existing boot/load time warnings from sata_mv for Highpoint RocketRAID 23xx cards, based on new knowledge about where the BIOS likes to overwrite sectors with metadata. Harmless to us, but very useful for end users. Signed-off-by: Mark Lord Signed-off-by: Jeff Garzik commit e41bd3e854e3536de847d5831c0e25a47f394885 Author: Tejun Heo Date: Sun Dec 9 19:45:39 2007 +0900 libata: add ST3160023AS / 3.42 to NCQ blacklist Like ST380817AS / 3.42, ST3160023AS / 3.42 times out commands if NCQ is used. Blacklist it. This is reported by Matheus Izvekov in the following thread. http://thread.gmane.org/gmane.linux.ide/24202 Signed-off-by: Tejun Heo Cc: Matheus Izvekov Signed-off-by: Jeff Garzik commit f7fe7ad4bcaba17f05d5cbf1119772c645783b08 Author: Tejun Heo Date: Sat Dec 8 08:47:01 2007 +0900 libata: clear link->eh_info.serror from ata_std_postreset() link->eh_info.serror is used to cache SError for controllers which need it cleared from interrupt handler to clear IRQ. It also should be cleared after reset just like SError itself. Make ata_std_postreset() clear link->eh_info.serror too and update sata_sil such that it doesn't care about bookkeeping the value. Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 8cf32ac6578a70025be1103466da9d1d6141429e Author: Tejun Heo Date: Sat Dec 8 08:45:27 2007 +0900 sata_sil: fix spurious IRQ handling Interestingly, sata_sil raises spurious interrupts if it's coupled with Sil SATA_PATA bridge. Currently, sata_sil interrupt handler is strict about spurious interrupts and freezes the port when it occurs. This patch makes it more forgiving. * On SATA PHY event interrupt, serror value is checked to see whether it really is PHYRDY CHG event. If not, SATA PHY event interrupt is ignored. * If ATA interrupt occurs while no command is in progress, it's cleared and ignored. This fixes bugzilla bug 9505. http://bugzilla.kernel.org/show_bug.cgi?id=9505 Signed-off-by: Tejun Heo Signed-off-by: Jeff Garzik commit 53e490936a91940a153e231c3b8288e3ecfcc5aa Author: Zhu Yi Date: Thu Dec 6 16:08:44 2007 +0800 iwlwifi: fix rf_kill state inconsistent during suspend and resume The patch fixes the STATUS_RF_KILL_HW state is not cleared problem if the device goes to suspend when the rf_kill switch is enabled. The bug causes the driver always thinks the rf_kill switch is enabled (although it is disabled) after resume. Signed-off-by: Zhu Yi Signed-off-by: John W. Linville commit 1a8d122782bdabe4475f29d022c9a0c092ac9878 Author: Larry Finger Date: Fri Dec 14 13:59:11 2007 +0100 b43: Fix rfkill radio LED This fixes Bug #9414 Since addition of the rfkill callback, the LED associated with the off switch on the radio has not worked for several reasons: (1) Essential data in the rfkill structure were missing. (2) The rfkill structure was initialized after the LED initialization. (3) There was a minor memory leak if the radio LED structure was inited. Once the above problems were fixed, additional difficulties were noted: (4) The radio LED was in the wrong state at startup. (5) The radio switch had to be manipulated twice for each state change. (6) A circular mutex locking situation existed. (7) If rfkill-input is built as a module, it is not automatically loaded. This patch fixes all of the above. Signed-off-by: Larry Finger Signed-off-by: Michael Buesch Signed-off-by: John W. Linville commit cb935cb4bd155d50ac98617b580aadd9d7ef3a0f Author: Andrew Morton Date: Thu Dec 13 15:52:13 2007 -0800 bcm43xx_debugfs sscanf fix ia64: drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c: In function `tsf_write_file': drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:237: warning: long long int format, u64 arg (arg 3) drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c:237: warning: long long int format, u64 arg (arg 3) We do not know what type was used to implement u64 and we can never use u64 in printk(), sscanf(), etc. Cc: Michael Buesch Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit aaf44a06b7c4864d93660e04701a72153197932c Author: Dan Williams Date: Thu Dec 13 15:52:12 2007 -0800 libertas: select WIRELESS_EXT Ensure that libertas selects WIRELESS_EXT, since selecting other stuff that should depend on WEXT, like IEEE80211, doesn't seem to drag that in for us. Signed-off-by: Dan Williams Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit a5acc379e52c78db407c73537daff387b179202c Author: Cyrill Gorcunov Date: Thu Dec 13 15:52:12 2007 -0800 iwlwifi3945/4965: fix rate control algo reference leak Fix rate control algo reference leak in case if network device has been failed to register. In this case special flag priv->mac80211_registered is not set and the rate algo reference is not freeing on module unload. That leads to OOPs in further ieee80211 rate register/unregister procedure (by any callee). It should fix the bug #9470 http://bugzilla.kernel.org/show_bug.cgi?id=9470 [akpm@linux-foundation.org: build fix] Signed-off-by: Cyrill Gorcunov Acked-by: Zhu Yi Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit b808ab16a9c99c00e3d8c3b351977fce62781dd0 Author: Cyrill Gorcunov Date: Thu Dec 13 15:52:11 2007 -0800 ieee80211_rate: missed unlock Signed-off-by: Andrew Morton Signed-off-by: John W. Linville commit 2ef19e63e698d740661e04bd6d62ac3305435c61 Author: Adrian Bunk Date: Tue Dec 11 23:20:22 2007 +0100 wireless/ipw2200.c: add __dev{init,exit} annotations This patch adds __dev{init,exit} annotations. Signed-off-by: Adrian Bunk Signed-off-by: John W. Linville commit 9313794371ad39e6bf88e1fbef8dfb3bd1ae3fe7 Author: Ulrich Kunitz Date: Sat Dec 1 11:26:05 2007 +0100 zd1211rw: Fix alignment problems Shaddy Baddah found an alignment problem with zd1211rw driver at 2007-11-19. This patch fixes it, it is based on the patch proposed by Herbert Xu. The alignment 4 has been the agreed value on the linux-wireless mailing list. Notify that the problem does only affect the old zd1211rw softmac driver and not the zd1211rw-mac80211 driver. Daniel Drake has already provided a patch for the replacement of the softmac driver, which this patch will break. Signed-off-by: Ulrich Kunitz Signed-off-by: John W. Linville commit 74cda169fe65ca1dedad6d4a905b13c6ccd87351 Author: Stefano Brivio Date: Mon Nov 19 20:27:46 2007 +0100 libertas: add Dan Williams as maintainer Add Dan Williams as maintainer for libertas driver. Signed-off-by: Stefano Brivio Cc: Dan Williams Signed-off-by: John W. Linville commit 961994a0c2a24d9622eea7144b30ac773169659f Author: Al Viro Date: Sat Dec 15 01:44:33 2007 +0000 sis190 endianness Check in sis190_rx_interrupt() is broken on big-endian (desc->status is little-endian and everything else actually uses it correctly, including other checks for OWNbit. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 87e417b2f3a061d5eb85906288738f4313f1d924 Author: Anton Vorontsov Date: Mon Dec 17 14:54:35 2007 +0300 ucc_geth: really fix section mismatch Commit ed7e63a51d46e835422d89c687b8a3e419a4212a has tried to fix section mismatch: WARNING: vmlinux.o(.init.text+0x17278): Section mismatch: reference to .exit.text:uec_mdio_exit (between 'ucc_geth_init' and 'uec_mdio_init') But that mismatch still happens. This patch actually fixing section mismatch by removing __exit from the header file. Signed-off-by: Anton Vorontsov Signed-off-by: Jeff Garzik commit 7a1fd330571530d44261bf8e9ee63b880f2bb4db Author: Komuro Date: Mon Dec 17 22:22:31 2007 +0900 pcnet_cs: add new id add new id: Planex CF-10T Signed-off-by: Komuro Signed-off-by: Jeff Garzik commit e8aed3450c0afd6fdb79ec233f806e3e69454dfe Author: Mark Fasheh Date: Mon Dec 3 16:43:01 2007 -0800 ocfs2: Re-journal buffers after transaction extend ocfs2_extend_trans() might call journal_restart() which will commit dirty buffers and then restart the transaction. This means that any buffers which still need changes should be passed to journal_access() again. Some paths during extend weren't doing this right. Signed-off-by: Mark Fasheh commit 0879c584ffcccd50a8d0f72cab3a51702613f901 Author: Mark Fasheh Date: Mon Dec 3 16:42:19 2007 -0800 ocfs2: Allow for debugging of transaction extends The nastiest cases of transaction extends are also the rarest. We can expose them more quickly at the expense of performance by going straight to the journal_restart() in ocfs2_extend_trans(). Wrap things in OCFS2_DEBUG_FS so that we only do this when "expensive debugging" is turned on. Signed-off-by: Mark Fasheh commit 92295d8054289eff0d52b4d12349f9b9df0f58e4 Author: Mark Fasheh Date: Mon Dec 3 15:02:10 2007 -0800 ocfs2: Don't panic when truncating an empty extent This BUG_ON() was unintentionally left in after the sparse file support was written. Signed-off-by: Mark Fasheh commit a86370fbb65a0a2cb21d28bf25a748f6cc04385b Author: Mark Fasheh Date: Mon Dec 3 14:06:23 2007 -0800 ocfs2: fix exit-while-locked bug in ocfs2_queue_orphans() We're holding the cluster lock when a failure might happen in ocfs2_dir_foreach() so it needs to be released. Signed-off-by: Mark Fasheh commit e70e7690b66dc06fe2ad9058e696e18fe7f3faa6 Author: Greg Kroah-Hartman Date: Fri Dec 14 19:18:31 2007 -0500 USB: revert portions of "UNUSUAL_DEV: Sync up some reported devices from Ubuntu" This reverts one change from 67fa10627ec0d8aa16f1cf38cf527e67d8097d3c that prevented userspace from seing the "driver disk" lun in a san disk device. The kernel shouldn't do this, it's up to userspace to handle this properly, if it somehow wants to filter this away. Cc: Ben Collins Cc: Alan Stern Cc: Phil Dibowitz Cc: Kyle McMartin Cc: Matthew Dharm Cc: Hans de Goede Signed-off-by: Greg Kroah-Hartman commit 565227c08226e458da191518251dbff6831624c2 Author: Benjamin Herrenschmidt Date: Thu Dec 6 13:28:25 2007 -0800 usb: Remove broken optimisation in OHCI IRQ handler The OHCI IRQ handler has an optimisation that avoids reading some chip registers when the controller reports that the interrupt was triggered *only* because completed requests were written into the controller's "done list" and handed to the host. This mechanism can't be used on some controllers. Among others, it fails for the SA1111 and the AMCC 440EP PowerPC processor. This patch removes the optimisation and makes the code clearer. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: David Brownell Signed-off-by: Greg Kroah-Hartman commit 08cbc706acd2dd601b0663e28fa97ffb0564e105 Author: Nicolas Ferre Date: Thu Dec 13 15:52:58 2007 -0800 USB: at91_udc: correct hanging while disconnecting usb cable Correct hanging while disconnecting the USB device cable. Prevent a race between vbus and UDP interrupts. This bug was tracked on at91sam9260ek boards. A usb resume interrupt was firing after the vbus interrupt : the IP was then already stoped and not able to deal with it (no more clock). A simple interrupt disabling is ok as the "end of bus reset" irq is non maskable and ok to resume the USB device IP. Signed-off-by: Nicolas Ferre Acked-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit 442258e2ff69276ff767f3703b30ce6a31fdd181 Author: Alan Stern Date: Thu Dec 6 14:47:08 2007 -0500 USB: use IRQF_DISABLED for HCD interrupt handlers Host controller IRQs are supposed to be serviced with interrupts disabled. This patch (as1026) adds an IRQF_DISABLED flag to all the controller drivers that lack it. It also replaces the spin_lock_irqsave() and spin_unlock_irqrestore() calls in uhci_irq() with simple spin_lock() and spin_unlock(). This fixes Bugzilla #9335. Signed-off-by: Alan Stern Acked-by: David Brownell Signed-off-by: Andrew Morton Signed-off-by: Greg Kroah-Hartman commit d48bd977e0dd8c17081d12242bfc09d743ea0d26 Author: Alan Stern Date: Tue Dec 11 16:02:23 2007 -0500 USB: fix locking loop by avoiding flush_scheduled_work This patch (as1027) replaces a call to flush_scheduled_work() -- a dangerous routine to invoke, especially while holding any sort of lock -- with calls to cancel_work_sync() and cancel_delayed_work_sync(). This fixes Bugzilla #9532. Signed-off-by: Alan Stern CC: David Brownell Signed-off-by: Greg Kroah-Hartman commit f88ed90d8627d0d3d93b330d6d2012c2934fb54e Author: Randy Dunlap Date: Mon Dec 3 14:14:16 2007 -0800 usb.h: fix kernel-doc warning Fix kernel-doc warning in usb.h: Warning(linux-2.6.24-rc3-git7//include/linux/usb.h:166): No description found for parameter 'sysfs_files_created' Signed-off-by: Randy Dunlap Signed-off-by: Greg Kroah-Hartman commit b5ce18afecda8ce1a9ed5fb8ec6362df6f6f85b8 Author: Jaime Velasco Juan Date: Fri Nov 30 16:30:11 2007 +0000 USB: option: Bind to the correct interface of the Huawei E220 This fixes a bunch of problems we are having with the Huawei devices... Signed-off-by: Oliver Neukum Signed-off-by: Jaime Velasco Juan Signed-off-by: Pete Zaitcev Signed-off-by: Greg Kroah-Hartman commit 8be27c2de64e95c3da12a4b002f623570b039874 Author: Jeff Long Date: Wed Nov 28 11:02:09 2007 -0500 USB: cp2101: new device id This adds a device ID for the Aerocomm Radio Modem, which uses the cp2102. I'm sure changing num_bulk_in/num_bulk_out to NUM_DONT_CARE is the wrong fix, but this is the only device I have with a cp2102, so I have no idea what a good global value would be, if there is one. Zero didn't work with this device. From: Jeff Long Signed-off-by: Greg Kroah-Hartman commit 33abc04f0420dceed0ebc2d1094019d3bb2b5c29 Author: Doug Maxey Date: Wed Dec 5 23:36:45 2007 -0600 usb-storage: Fix devices that cannot handle 32k transfers When a device cannot handle the smallest previously limited transfer size (64 blocks) without stalling, limit the device to the amount of packets that fit in a platform native page. The lowest possible limit is PAGE_CACHE_SIZE, so if the device is ever used on a platform that has larger than 8K pages, you lose unless you can convince the device firmware folks to fix the issue. Cc: Mathew Dharm Cc: Alan Stern Cc: Pete Zaitcev Signed-off-by: Doug Maxey Signed-off-by: Greg Kroah-Hartman commit b9e13ac30f850313be9232497ff98e90c43bc6b6 Author: agilmore@wirelessbeehive.com Date: Tue Dec 4 11:37:12 2007 -0700 USB: sierra: fix product id Attached is a patch to fix the addition of the new product ids I sent. It is against 2.6.24-rc4, as Linus included the broken version of the patch I sent you in that tree. :( Not sure if this is the right method to go about this, but hopefully I got it right this time. Signed-off-by: Andrew Gilmore CC: Kevin Lloyd Cc: stable Signed-off-by: Greg Kroah-Hartman commit bb44609361fe87c5e136c2b8dfde59bcbdbabf61 Author: Gary Hade Date: Tue Dec 11 17:09:13 2007 -0800 PCI: Restore PCI expansion ROM P2P prefetch window creation Restore PCI expansion ROM P2P prefetch window creation. This patch reverts previous "Avoid creating P2P prefetch window for expansion ROMs" change due to regressions that were spotted on some systems. Signed-off-by: Gary Hade Signed-off-by: Greg Kroah-Hartman commit ba3882a9178585289614c16a3b3f9b5f321d27b2 Author: barrios Date: Fri Dec 14 12:21:15 2007 +0900 HOWTO: update misspelling and word incorrected Signed-off-by: barrios Signed-off-by: Greg Kroah-Hartman commit 83f88044b45c71df6af72053a3eb9383bb9291d6 Author: barrios Date: Sat Dec 15 10:21:33 2007 +0900 add stable_api_nonsense.txt in korean Signed-off-by: barrios Signed-off-by: Greg Kroah-Hartman commit 57e1fd1f589414258dbbac8e0ea7bc2af8344ec3 Author: minchan kim Date: Thu Dec 13 11:47:17 2007 +0900 HOWTO: change addresses of maintainer and lxr url for Korean HOWTO So sorry. again My mail is set with EUC-kR. I'll resend with UTF-8. Signed-off-by: barrios Signed-off-by: Greg Kroah-Hartman commit 0594fe069df5a10686a3b923b36a0e7a6aed2393 Author: Dhaval Giani Date: Wed Dec 12 11:18:59 2007 +0530 Add Documentation for FAIR_USER_SCHED sysfs files This patch adds documentation about /sys/kernel/uids//cpu_share to Documentation/ABI. Signed-off-by: Dhaval Giani Cc: Ingo Molnar Signed-off-by: Greg Kroah-Hartman commit e11d044efdd2e5c837c4d470fc447b49a9aebfe1 Author: Tsugikazu Shibata Date: Fri Nov 30 18:59:18 2007 +0900 HOWTO: Change man-page maintainer address for Japanese HOWTO Below is a patch to change email address of man-page maintainer for Japanese HOWTO document (Documentation/ja_JP/HOWTO). This is for sync to Documentation/HOWTO that Michael Kerrisk mentioned to me. From: Tsugikazu Shibata Signed-off-by: Greg Kroah-Hartman commit cb8c9b6de076d981ca22801dbd6bce12b0758468 Author: Romain Liévin Date: Sat Dec 1 08:51:58 2007 +0100 tipar: remove obsolete module tipar: remove obsolete module The tipar character driver was used to implement bit-banging access to Texas Instruments parallel link cable. A user-land method now exists thru PPDEV & PARPORT. Signed-off-by: Romain Liévin Signed-off-by: Greg Kroah-Hartman commit 8c4606b1a4f6eb09344294b7f11641f36cd402af Author: Greg Kroah-Hartman Date: Tue Dec 4 14:45:47 2007 +0800 kobject: fix the documentation of how kobject_set_name works Thanks to Dave Young for pointing out that I forgot to update the comment when I rewrote kobject_set_name. Cc: Dave Young Signed-off-by: Greg Kroah-Hartman commit 553876c802249b21267b78a9b3857d1341a3df87 Author: Kevin Hilman Date: Wed Dec 12 00:32:58 2007 +0100 [ARM] 4694/1: IXP4xx: Update clockevent support for shutdown and resume Add proper support for CLOCK_EVT_MODE_RESUME and in the process fix CLOCK_EVT_MODE_SHUTDOWN so that only the enable bits are toggled for both. Signed-off-by: Kevin Hilman Signed-off-by: Russell King commit 41a9e680717e82c745b1ead979ea008e9134ea68 Author: Uwe Kleine-König Date: Thu Dec 13 09:31:34 2007 +0100 [ARM] 4710/1: Fix coprocessor 14 usage for debug messages via ICEDCC According to ARM7TDMI Technical Reference Manual (ARM DDI 0210C) writing to the DCC data write register coproc dest registers are 1 and 0, not 0 and 1. ARM920T TRM (ARM DDI 0151C) agrees on that. Cc: Ben Dooks Signed-off-by: Uwe Kleine-König Signed-off-by: Russell King commit 0d01792300c4d7425eabac9095c603cdb411d2a5 Author: Martin Schwidefsky Date: Mon Dec 17 16:25:48 2007 +0100 [S390] pud_present/pmd_present bug. Git commit 3610cce87af0693603db171d5b6f6735f5e3dc5b (yeah my own :-/) introduced a bug in regard to pud/pmd table entries. If the address of the page table refered to by a pud/pmd value happens to have zeroes in the lower 32 bits, pud_present and pmd_present return false. The obvious effect is that this triggers the BUG_ON in exit_mmap because some ptes will not get released on process end. Worse is that the next fault for memory covered by that pud/pmd will allocate another pmd/pte table and populate the pud/pmd entry. The old page table entries hanging below this entry are lost! The fix is simple, properly check against 0. The check is added for pud_none/pmd_none as well even if these two functions work because the invalid bit is in the lower 32 bits. Signed-off-by: Martin Schwidefsky commit a26e01d71622a4cecad06ce85bcab3ed878e7f83 Author: Richard Knutsson Date: Sun Dec 16 14:10:33 2007 -0800 [IRDA]: irda parameters warning fixes. This patch fixes: CHECK /home/kernel/src/net/irda/parameters.c /home/kernel/src/net/irda/parameters.c:466:2: warning: Using plain integer as NULL pointer /home/kernel/src/net/irda/parameters.c:520:2: warning: Using plain integer as NULL pointer /home/kernel/src/net/irda/parameters.c:573:2: warning: Using plain integer as NULL pointer Signed-off-by: Richard Knutsson Signed-off-by: Samuel Ortiz Signed-off-by: David S. Miller commit ea332912b8a2e0b2f51ac3b6c197b71d3a18cbb7 Author: Olaf Hartmann Date: Sun Dec 16 14:09:44 2007 -0800 [IRDA]: stir4200 fixes. From: Olaf Hartmann The attached patch observes the stir4200 fifo size and will clear the fifo, if the size is increasing, while it should be transmitting bytes Signed-off-by: Samuel Ortiz Signed-off-by: David S. Miller commit 2638698df30b7b57a8dad7029a0c89fe6c4f6783 Author: Hinko Kocevar Date: Sun Dec 16 14:08:58 2007 -0800 [IRDA]: irlmp_unregister_link() needs to free lsaps. While testing the mcs7780 based IrDA USB dongle I've stumbled upon memory leak in irlmp_unregister_link(). Hashbin for lsaps is created in irlmp_register_link and should probably be freed in irlmp_unregister_link(). Signed-off-by: Hinko Kocevar Signed-off-by: Samuel Ortiz Signed-off-by: David S. Miller commit 0ff804348d66550e7dd1d6781c65403b312e2da2 Author: Hinko Kocevar Date: Sun Dec 16 14:08:22 2007 -0800 [IRDA]: mcs7780 needs to free allocated rx buffer. While testing the mcs7780 based IrDA USB dongle I've stumbled upon memory leak in mcs_net_close(). Patch below fixes it. Signed-off-by: Hinko Kocevar Signed-off-by: Samuel Ortiz Signed-off-by: David S. Miller commit 497ba7f4c8113ed699a4fd793d1437f0c8f2da5e Author: Oliver Neukum Date: Sun Dec 16 14:07:36 2007 -0800 [IRDA]: Race between open and disconnect in irda-usb. It seems to me that irda_usb_net_open() must set self->netopen under spinlock or disconnect() may fail to kill all URBs, if it is called while an interface is opened. Signed-off-by: Oliver Neukum Signed-off-by: Samuel Ortiz Signed-off-by: David S. Miller commit ef5d4cf2f9aae4e09883d2d664e367a16b47d857 Author: Vlad Yasevich Date: Sun Dec 16 14:05:45 2007 -0800 [SCTP]: Flush fragment queue when exiting partial delivery. At the end of partial delivery, we may have complete messages sitting on the fragment queue. These messages are stuck there until a new fragment arrives. This can comletely stall a given association. When clearing partial delivery state, flush any complete messages from the fragment queue and send them on their way up. Signed-off-by: Vlad Yasevich Signed-off-by: David S. Miller commit 215f7b08f2a142ec19f4bd3d6de263e68b877955 Author: Jarek Poplawski Date: Sun Dec 16 14:02:07 2007 -0800 [AX25]: Locking dependencies fix in ax25_disconnect(). Bernard Pidoux reported these lockdep warnings: [ INFO: possible irq lock inversion dependency detected ] 2.6.23.1 #1 --------------------------------------------------------- fpac/4933 just changed the state of lock: (slock-AF_AX25){--..}, at: [] ax25_disconnect+0x46/0xaf [ax25] but this lock was taken by another, soft-irq-safe lock in the past: (ax25_list_lock){-+..} and interrupts could create inverse lock ordering between them. [...] [ INFO: inconsistent lock state ] 2.6.23.1 #1 --------------------------------- inconsistent {in-softirq-W} -> {softirq-on-W} usage. ax25_call/4005 [HC0[0]:SC0[0]:HE1:SE1] takes: (slock-AF_AX25){-+..}, at: [] ax25_disconnect+0x46/0xaf [ax25] [...] This means slock-AF_AX25 could be taken both from softirq and process context with softirqs enabled, so it's endangered itself, but also makes ax25_list_lock vulnerable. It was not 100% verified if the real lockup can happen, but this fix isn't very costly and looks safe anyway. (It was tested by Bernard with 2.6.23.9 and 2.6.24-rc5 kernels.) Reported_by: Bernard Pidoux Tested_by: Bernard Pidoux Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller commit 488faa2ae32c2f8b1ffda5c7fae5eb7c979acc15 Author: Satoru SATOH Date: Sun Dec 16 14:00:19 2007 -0800 [IPV4]: Make tcp_input_metrics() get minimum RTO via tcp_rto_min() tcp_input_metrics() refers to the built-time constant TCP_RTO_MIN regardless of configured minimum RTO with iproute2. Signed-off-by: Satoru SATOH Signed-off-by: David S. Miller commit cf6fc4a92400decda932e5ab97b46916919142b1 Author: Wei Yongjun Date: Sun Dec 16 13:39:57 2007 -0800 [IPV6]: Fix the return value of ipv6_getsockopt If CONFIG_NETFILTER if not selected when compile the kernel source code, ipv6_getsockopt will returen an EINVAL error if optname is not supported by the kernel. But if CONFIG_NETFILTER is selected, ENOPROTOOPT error will be return. This patch fix to always return ENOPROTOOPT error if optname argument of ipv6_getsockopt is not supported by the kernel. Signed-off-by: Wei Yongjun Signed-off-by: David S. Miller commit 3ae412544cde6d987e0e48778bd87bc96a5749df Author: Stephen Hemminger Date: Sun Dec 16 13:35:51 2007 -0800 [BRIDGE]: Assign random address. Assigning a valid random address to bridge device solves problems when bridge device is brought up before adding real device to bridge. When the first real device is added to the bridge, it's address will overide the bridges random address. Note: any device added to a bridge must already have a valid ethernet address. br_add_if -> br_fdb_insert -> fdb_insert -> is_valid_ether_addr Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit f33e1d9fa20381afa3be7e7f560c59845bfa5cec Author: Amos Waterland Date: Fri Dec 14 11:30:22 2007 -0800 [IPV4]: Updates to nfsroot documentation The difference between ip=off and ip=::::::off has been a cause of much confusion. Document how each behaves, and do not contradict ourselves by saying that "off" is the default when in fact "any" is the default and is descibed as being so lower in the file. Signed-off-by: Amos Waterland Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit f58adb757be48068e2bded3dd77ba072c22a10ff Author: Tom "spot" Callaway Date: Thu Dec 13 09:33:50 2007 -0800 [ATM]: Fix compiler warning noise with FORE200E driver gcc throws these warnings with: CONFIG_ATM_FORE200E=m # CONFIG_ATM_FORE200E_PCA is not set drivers/atm/fore200e.c:2695: warning: 'fore200e_pca_detect' defined but not used drivers/atm/fore200e.c:2748: warning: 'fore200e_pca_remove_one' defined but not used By moving the #ifdef CONFIG_ATM_FORE200E_PCA around those two functions, the compiler warnings are silenced. Signed-off-by: Tom "spot" Callaway Signed-off-by: David S. Miller commit 4a9ecd5960e6a7814f6e3405807d49010ffe3a88 Author: Patrick McHardy Date: Thu Dec 13 09:32:04 2007 -0800 [NETFILTER]: bridge: fix missing link layer headers on outgoing routed packets As reported by Damien Thebault, the double POSTROUTING hook invocation fix caused outgoing packets routed between two bridges to appear without a link-layer header. The reason for this is that we're skipping the br_nf_post_routing hook for routed packets now and don't save the original link layer header, but nevertheless tries to restore it on output, causing corruption. The root cause for this is that skb->nf_bridge has no clearly defined lifetime and is used to indicate all kind of things, but that is quite complicated to fix. For now simply don't touch these packets and handle them like packets from any other device. Tested-by: Damien Thebault Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 6f229d76b4c4a7fae601ea9398b23c2b426ab3b9 Author: Al Viro Date: Wed Dec 12 18:50:18 2007 -0800 [SYNCPPP]: Endianness and 64bit fixes. * trivial annotations * long != 32bit, use __be32 * wrong endianness in sending CISCO_ADDR_REPLY Signed-off-by: Al Viro Signed-off-by: David S. Miller commit 98eb5683fb94c458b3c8d121797bc9aa1baf4e7e Author: Andrew Morton Date: Wed Dec 12 11:24:19 2007 -0800 [TIPC]: Fix semaphore handling. As noted by Kevin, tipc's release() does down_interruptible() and ignores the return value. So if signal_pending() we'll end up doing up() on a non-downed semaphore. Fix. Signed-off-by: Andrew Morton Signed-off-by: David S. Miller commit cbebc51f7b77d26ec23145d6ef22ac2b209f7955 Author: Eric Dumazet Date: Wed Dec 12 11:11:28 2007 -0800 [NETFILTER]: xt_hashlimit should use time_after_eq() In order to avoid jiffies wraparound and its effect, special care must be taken when doing comparisons ... Signed-off-by: Eric Dumazet Acked-by: Patrick McHardy Signed-off-by: David S. Miller commit 9ab4c954ce2b2b3c485bee7e425fda05946893be Author: Paul Moore Date: Wed Dec 12 11:10:16 2007 -0800 [XFRM]: Display the audited SPI value in host byte order. Currently the IPsec protocol SPI values are written to the audit log in network byte order which is different from almost all other values which are recorded in host byte order. This patch corrects this inconsistency by writing the SPI values to the audit record in host byte order. Signed-off-by: Paul Moore Signed-off-by: David S. Miller commit a18aa31b7774d8b36048e256a02d9d689533fc96 Author: Patrick McHardy Date: Wed Dec 12 10:35:16 2007 -0800 [NETFILTER]: ip_tables: fix compat copy race When copying entries to user, the kernel makes two passes through the data, first copying all the entries, then fixing up names and counters. On the second pass it copies the kernel and match data from userspace to the kernel again to find the corresponding structures, expecting that kernel pointers contained in the data are still valid. This is obviously broken, fix by avoiding the second pass completely and fixing names and counters while dumping the ruleset, using the kernel-internal data structures. Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit f2a89004da23a5ed2d78ac5550ccda5b714fe7d0 Author: Pablo Neira Ayuso Date: Wed Dec 12 10:34:29 2007 -0800 [NETFILTER]: ctnetlink: set expected bit for related conntracks This patch is a fix. It sets IPS_EXPECTED for related conntracks. Signed-off-by: Pablo Neira Ayuso Signed-off-by: Patrick McHardy Signed-off-by: David S. Miller commit 3fd7131feacc01c1e23e46c416228f36ebdcc0d4 Author: Matheos Worku Date: Fri Dec 14 11:48:29 2007 -0800 ixgb: make sure jumbos stay enabled after reset Currently a device reset (ethtool -r ethX) would cause the adapter to fall back to regular MTU sizes. Signed-off-by: Matheos Worku Signed-off-by: Jesse Brandeburg Signed-off-by: Auke Kok Signed-off-by: Jeff Garzik commit 470738758db2c209481fdf92ca09f60e690a62d3 Author: Jiri Slaby Date: Thu Dec 13 16:02:57 2007 -0800 Net: ibm_newemac, remove SPIN_LOCK_UNLOCKED SPIN_LOCK_UNLOCKED is deprecated, use DEFINE_SPINLOCK instead Signed-off-by: Jiri Slaby Cc: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit b173079feaed7664a3407eb17e102010d687a051 Author: Paul Mundt Date: Thu Dec 13 16:02:59 2007 -0800 net: smc911x: shut up compiler warnings Trivial fix to shut up gcc. Signed-off-by: Paul Mundt Cc: Jeff Garzik Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit 4b8fdefa090c8b9582f58a93f73938f9b86c264a Author: Andrew Morton Date: Thu Dec 13 16:02:55 2007 -0800 ucc_geth: minor whitespace fix The zombie whitespace from outer space that will not die! Cc: "David S. Miller" Cc: Emil Medve Cc: Jeff Garzik Cc: Kumar Gala Cc: Li Yang Cc: Paul Mackerras Signed-off-by: Andrew Morton Signed-off-by: Jeff Garzik commit 33390a700129aa03f3808c35de017650a688f82a Author: Adrian Bunk Date: Tue Dec 11 23:23:06 2007 +0100 drivers/net/s2io.c section fixes Code used by the non-__devinit s2io_open() mustn't be __devinit. This patch fixes the following section mismatch with CONFIG_HOTPLUG=n: <-- snip --> ... WARNING: vmlinux.o(.text+0x6f6e3e): Section mismatch: reference to .init.text.20:s2io_test_intr (between 's2io_open' and 's2io_ethtool_sset') ... <-- snip --> Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik commit c2b75f0cd7cb14874f179d2c09c81f77ad784df2 Author: Adrian Bunk Date: Tue Dec 11 23:23:56 2007 +0100 drivers/net/sis190.c section fix This patch fixes the following section mismatch with CONFIG_HOTPLUG=n: <-- snip --> ... WARNING: vmlinux.o(.init.text.20+0x4cb25): Section mismatch: reference to .exit.text:sis190_mii_remove (between 'sis190_init_one' and 'read_eeprom') ... <-- snip --> Signed-off-by: Adrian Bunk Signed-off-by: Jeff Garzik commit 8e9859184031ac1b0a0234b8671a90cfcd333666 Author: Al Viro Date: Mon Dec 10 18:39:29 2007 +0000 hamachi endianness fixes badly broken on big-endian * passing little-endian to pci_unmap_single() et.al. * cpu_to_le32() before passing value to writel() * worse, cpu_to_le64() and shifting/masking result before the same * hmp->tx_ring[i].status_n_length = cpu_to_le32( DescEndRing | (hmp->tx_ring[i].status_n_length & 0x0000FFFF)); is obviously bogus on big-endian. Not hard to untangle, fortunately... * poisoning addresses in rx_ring is better done after we'd done pci_unmap_single() on them, not before that. [this one affects little-endian as well, obviously, provided that pci_unmap_single() is not a no-op on target in question] Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 8543da6672b0994921f014f2250e27ae81645580 Author: Auke Kok Date: Wed Dec 12 16:30:42 2007 -0800 e100: free IRQ to remove warningwhenrebooting Adapted from Ian Wienand Explicitly free the IRQ before removing the device to remove a warning "Destroying IRQ without calling free_irq" Signed-off-by: Auke Kok Cc: Ian Wienand Signed-off-by: Jeff Garzik commit 813820b9b9adb98d4ad3cd7434eb662b0fc15684 Author: Al Viro Date: Sun Dec 9 17:00:54 2007 +0000 starfire VLAN fix Recognized VLAN ids are set via writew(), should go in host-endian. That's a long-standing bug, BTW - see http://lkml.org/lkml/2004/2/27/180 for example. What happens is that card gets VLAN id table populated by byteswapped values on little-endian boxen (so 257 works as expected, 256 and 258 do not, etc.). Bug is easily reproduced, patch fixes it. Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 14c9d9b03bb8ec63c77aebddea9a6f730f1b62d5 Author: Al Viro Date: Sun Dec 9 16:50:47 2007 +0000 sundance fixes * all places where we assign ->addr get cpu_to_le32(pci_map_single(....)), so we ought to convert back to host-endian before doing pci_unmap_single() et.al. * poisoning addresses in netdev_close() should be done _after_ unmapping them, not before it... Signed-off-by: Al Viro Signed-off-by: Jeff Garzik commit 798fdd07fcc131f396e521febb4a7d42559bf4b5 Author: Stephen Hemminger Date: Fri Dec 7 15:22:15 2007 -0800 sky2: RX lockup fix I'm using a Marvell 88E8062 on a custom PPC64 blade and ran into RX lo