commit 48d8d7ee5dd17c64833e0343ab4ae8ef01cc2648 Author: Siddha, Suresh B Date: Mon Jun 25 15:52:35 2007 -0700 x86_64 irq: use mask/unmask and proper locking in fixup_irqs() Force irq migration path during cpu offline, is not using proper locks and irq_chip mask/unmask routines. This will result in some races(especially the device generating the interrupt can see some inconsistent state, resulting in issues like stuck irq,..). Appended patch fixes the issue by taking proper lock and encapsulating irq_chip set_affinity() with a mask() before and an unmask() after. This fixes a MSI irq stuck issue reported by Darrick Wong. There are several more general bugs in this area(irq migration in the process context). For example, 1. Possibility of missing edge triggered irq. 2. Reliable method of migrating level triggered irq in the process context. We plan to look and close these in the near future. Eric says: In addition even with the fix from Suresh there is still at least one nasty hardware race in fixup_irqs(). However we exercise that code path rarely enough that we are unlikely to hit it in the real world, and that race seems to have existed since the code was merged. And a fix for that is not coming soon as it is an open investigation area if we can fix irq migration to work outside of irq context or if we have to rework the requirements imposed by the generic cpu hotplug and layer on fixup_irqs(). So this may come up again. Signed-off-by: Suresh Siddha Cc: Eric W. Biederman Reported-and-tested-by: Darrick Wong Cc: Andi Kleen Acked-by: Rafael J. Wysocki Signed-off-by: Linus Torvalds commit c47e285dee9673087273fafcff06a44c58ed4efd Author: Suresh Siddha Date: Mon Jun 25 15:31:37 2007 -0700 x86_64: set the irq_chip name for lapic set the irq_chip name for lapic. Signed-off-by: Suresh Siddha Signed-off-by: Linus Torvalds commit f436ab43614f105a4685c976a85a171bc112c802 Merge: 6cd236e... 0c07f61... Author: Linus Torvalds Date: Tue Jun 26 16:51:23 2007 -0700 Merge master.kernel.org:/home/rmk/linux-2.6-arm * master.kernel.org:/home/rmk/linux-2.6-arm: [ARM] 4449/1: more entries in arch/arm/boot/.gitignore [ARM] 4452/1: Force the literal pool dump before reloc_end [ARM] Update show_regs/oops register format [ARM] Add support for pause_on_oops and display preempt/smp options commit 6cd236e0057704d1f5c77908374079e021c83928 Merge: 2c9dbda... 8e15a0e... Author: Linus Torvalds Date: Tue Jun 26 16:50:48 2007 -0700 Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: [MIPS] Count timer interrupts correctly. [MIPS] SMTC and non-SMTC kernel and modules are incompatible [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work. [MIPS] Remove a duplicated local variable in test_and_clear_bit() [MIPS] use compat_siginfo in rt_sigframe_n32 [MIPS] 20K: Handle WAIT related bugs according to errata information [MIPS] AP/SP requires shadow registers, auto enable support. [MIPS] Fix pb1500 reg B access [MIPS] Alchemy: Fix wrong cast [MIPS] remove "support for" from system type entry [MIPS] add io_map_base to pci_controller on Cobalt [MIPS] __ucmpdi2 arguments are unsigned long long. commit 2c9dbda360d96819456f845ea92e20e4e9d0ed36 Merge: 9a08e73... ae62fbb... Author: Linus Torvalds Date: Tue Jun 26 16:49:57 2007 -0700 Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc: [POWERPC] Fix subtle FP state corruption bug in signal return on SMP [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval [POWERPC] Update defconfigs [POWERPC] Update g5_defconfig commit 9a08e732533b940d2d31f4e9999dfee5e1ca3914 Merge: b9e3614... d099321... Author: Linus Torvalds Date: Tue Jun 26 16:49:42 2007 -0700 Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6 * master.kernel.org:/pub/scm/linux/kernel/git/gregkh/usb-2.6: USB: ftdio_sio: New IPlus device ID USB: add new device id to option driver USB: fix race leading to use after free in io_edgeport USB: usblcd doesn't limit memory consumption during write USB: memory leak in iowarrior.c USB: ti serial driver sleeps with spinlock held USB: g_file_storage: call allow_signal() commit 8e15a0e35fdaf19e1aeb7923571e928bd6123cfd Author: Chris Dearman Date: Thu Jun 21 12:59:58 2007 +0100 [MIPS] Count timer interrupts correctly. Signed-off-by: Chris Dearman Signed-off-by: Ralf Baechle commit 2fae3731b1b02316c219c4556bb7ad3a920f73cc Author: Ralf Baechle Date: Wed Jun 20 14:25:27 2007 +0100 [MIPS] SMTC and non-SMTC kernel and modules are incompatible So don't allow mixing. Signed-off-by: Ralf Baechle commit 3207cd5c4b852b54126f5a4b2564652c64d93a6a Author: Ralf Baechle Date: Mon Jun 18 16:36:11 2007 +0100 [MIPS] EMMA2RH: Disable GEN_RTC, it can't possibly work. Neither rtc_mips_get_time nor rtc_mips_set_time are being initialized by the EMMA2RH setup code, so genrtc at best was a RTC dummy avoiding a few error messages but not providing actual functionality. Signed-off-by: Ralf Baechle commit 8e09ffb60bbc2b49c06718d5a1252860c709a660 Author: Atsushi Nemoto Date: Thu Jun 14 00:56:31 2007 +0900 [MIPS] Remove a duplicated local variable in test_and_clear_bit() Fix a sparse warning caused by 2c921d07f8c641e691b0dfd80a5cfe14c60ec489 include2/asm/bitops.h:313:23: warning: symbol 'res' shadows an earlier one include2/asm/bitops.h:309:16: originally declared here Signed-off-by: Atsushi Nemoto Signed-off-by: Ralf Baechle commit a76f3a417a431eaf673323459357d8e684b52c49 Author: Pavel Kiryukhin Date: Tue Jun 5 13:42:20 2007 +0400 [MIPS] use compat_siginfo in rt_sigframe_n32 Signed-off-by: Pavel Kiryukhin Signed-off-by: Ralf Baechle commit c8eae71dc81af15809d87d7aabb94810cea9577d Author: Ralf Baechle Date: Tue Jun 12 13:04:09 2007 +0100 [MIPS] 20K: Handle WAIT related bugs according to errata information We used to avoid the WAIT entirely on the 20K but really only need to do this on early revs of the 20K. Without this a 20K was a bit of a power hog. Well, in the lower power power hog category ;-) Signed-off-by: Ralf Baechle commit b0c10b9f4c4123dfb2f9e0d3df244a402c938561 Author: Ralf Baechle Date: Fri Jun 1 15:47:46 2007 +0100 [MIPS] AP/SP requires shadow registers, auto enable support. Noticed by Chris Dearman (chris@mips.com). Signed-off-by: Ralf Baechle commit b3a04a6d07453664abdf8b36296a640752ad4a70 Author: Yoichi Yuasa Date: Mon May 28 23:26:56 2007 +0900 [MIPS] Fix pb1500 reg B access au_readl() is correct here. Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 08a45936823d0c47db9e328185fdaad6c62d16bd Author: Yoichi Yuasa Date: Mon May 28 23:13:50 2007 +0900 [MIPS] Alchemy: Fix wrong cast Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit e460b73c8790bb14959cc99a8eb040e6bd2ecbf0 Author: Yoichi Yuasa Date: Mon May 28 22:54:28 2007 +0900 [MIPS] remove "support for" from system type entry Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 2ec0e59aff1b51ff80c2c544cbef17b7613c8d38 Author: Yoichi Yuasa Date: Mon May 21 23:02:34 2007 +0900 [MIPS] add io_map_base to pci_controller on Cobalt Signed-off-by: Yoichi Yuasa Signed-off-by: Ralf Baechle commit 3ca507920d4f618a960aed19609bcce6c4d15387 Author: Ralf Baechle Date: Tue Jun 26 19:37:20 2007 +0200 [MIPS] __ucmpdi2 arguments are unsigned long long. Reported by Eugene Surovegin . Signed-off-by: Ralf Baechle commit d099321bdbba0d49796841cd9d9faf6b0f0aa658 Author: Luiz Fernando N. Capitulino Date: Thu Jun 21 22:34:23 2007 -0300 USB: ftdio_sio: New IPlus device ID Reported by Grzegorz Chimosz Signed-off-by: Luiz Fernando N. Capitulino Signed-off-by: Greg Kroah-Hartman commit 46269db99cc1a618d707deb370d821d1f8d75945 Author: Alexander Gattin Date: Wed Jun 20 00:48:10 2007 +0300 USB: add new device id to option driver Cc: Matthias Urlichs Signed-off-by: Greg Kroah-Hartman commit 74ac07e8b8209ba9429fa1a9afc07aa5ecef5af8 Author: Oliver Neukum Date: Wed Jun 13 18:50:41 2007 +0200 USB: fix race leading to use after free in io_edgeport usb_unlink_urb() is asynchronous, therefore an URB's buffer may not be freed without waiting for the completion handler. This patch switches to usb_kill_urb(), which is synchronous. Thanks to Alan for making me look at the remaining users of usb_unlink_urb() Signed-off-by: Oliver Neukum Signed-off-by: Al Borchers Signed-off-by: Greg Kroah-Hartman commit 5afeb104e7901168b21aad0437fb51dc620dfdd3 Author: Oliver Neukum Date: Mon Jun 11 15:36:02 2007 +0200 USB: usblcd doesn't limit memory consumption during write usblcd currently has no way to limit memory consumption by fast writers. This is a security problem, as it allows users with write access to this device to drive the system into oom despite resource limits. Here's the fix taken from the modern skeleton driver. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit fc0f8fc9be654bbff08ede04a49bd8f9805b9e13 Author: Oliver Neukum Date: Tue Jun 12 15:36:07 2007 +0200 USB: memory leak in iowarrior.c this is a classical memory leak in the ioctl handler. The buffer is simply never freed. This fixes it the obvious way. Signed-off-by: Oliver Neukum Signed-off-by: Greg Kroah-Hartman commit 944dc184f6fe0dc63633099ba87cb75fe4ee0c51 Author: Oliver Neukum Date: Mon May 7 08:33:18 2007 +0200 USB: ti serial driver sleeps with spinlock held you are submitting an URB with GFP_KERNEL holding a spinlock. In this case the spinlock can be dropped earlier. Signed-off-by: Oliver Neukum Cc: Al Borchers Signed-off-by: Greg Kroah-Hartman commit 8cfbe7e60d9618d8f80a3cd218c45dd64cb9e5cf Author: Oleg Nesterov Date: Wed May 30 11:06:33 2007 -0400 USB: g_file_storage: call allow_signal() New changes in the signal-handling code require compensating changes in g_file_storage. This patch (as913) by Oleg Nesterov makes the code use allow_signal() instead of sigprocmask(). From: Alan Stern Signed-off-by: Alan Stern Signed-off-by: Greg Kroah-Hartman commit ae62fbb5f1f796d87cbdbe6701e13f2b52d5c0a7 Author: Paul Mackerras Date: Tue Jun 26 14:49:11 2007 +1000 [POWERPC] Fix subtle FP state corruption bug in signal return on SMP This fixes a bug which can cause corruption of the floating-point state on return from a signal handler. If we have a signal handler that has used the floating-point registers, and it happens to context-switch to another task while copying the interrupted floating-point state from the user stack into the thread struct (e.g. because of a page fault, or because it gets preempted), the context switch code will think that the FP registers contain valid FP state that needs to be copied into the thread_struct, and will thus overwrite the values that the signal return code has put into the thread_struct. This can occur because we clear the MSR bits that indicate the presence of valid FP state after copying the state into the thread_struct. To fix this we just move the clearing of the MSR bits to before the copy. A similar potential problem also occurs with the Altivec state, and this fixes that in the same way. Signed-off-by: Paul Mackerras commit 74609f4536f2b8fd6a48381bbbe3cd37da20a527 Author: Tony Breeds Date: Tue Jun 26 09:50:32 2007 +1000 [POWERPC] Fix VDSO gettimeofday() when called with NULL struct timeval Consider the prototype for gettimeofday(): int gettimofday(struct timeval *tv, struct timezone *tz); Although it is valid to call with /either/ tv or tz being NULL, and the C version of sys_gettimeofday() supports this, the current version of gettimeofday() in the VDSO will SEGV if called with a NULL tv. This adds a check for tv being NULL so that it doesn't SEGV. Signed-off-by: Tony Breeds Acked-by: Benjamin Herrenschmidt Signed-off-by: Paul Mackerras commit ca74c013441200b162f6a384b23b833d1865a9e8 Author: Paul Mackerras Date: Tue Jun 26 14:19:35 2007 +1000 [POWERPC] Update defconfigs Signed-off-by: Paul Mackerras commit d30d6badd1769a00bc5a800b8af4e8b3f169c633 Author: will schmidt Date: Sat Jun 23 01:24:56 2007 +1000 [POWERPC] Update g5_defconfig Update the g5_defconfig with default settings. This is to keep things up to date, and specifically to ensure that the CONFIG_MACINTOSH_DRIVERS option is enabled. This also turns on CONFIG_MSI. Signed-off-by: Will Schmidt cc: Michael Ellerman Signed-off-by: Paul Mackerras commit b9e3614f444f6546204f4538afcaa3ebe36d49f2 Author: Björn Steinbrink Date: Mon Jun 25 23:04:37 2007 +0200 fix nmi_watchdog=2 bootup hang wrmsrl() is broken, dropping the upper 32bits of the value to be written. This broke the NMI watchdog on AMD hardware. (and it probably broke other code too.) Signed-off-by: Ingo Molnar Signed-off-by: Linus Torvalds commit 0c07f6115b779ae4597749d47dec228c6d2d1c7c Author: Nicolas Pitre Date: Wed Jun 20 19:10:34 2007 +0100 [ARM] 4449/1: more entries in arch/arm/boot/.gitignore Signed-off-by: Nicolas Pitre Signed-off-by: Russell King commit 92c83ff1ce6165bd62cebe4e4d1ca5ccb6f9713b Author: Catalin Marinas Date: Fri Jun 22 14:27:50 2007 +0100 [ARM] 4452/1: Force the literal pool dump before reloc_end In the arch/arm/boot/compressed/head.S file, the contents of the literal pool accumulated during the relocatable code must be dumped before reloc_end. Signed-off-by: Catalin Marinas Signed-off-by: Russell King commit 154c772ebfb12ef66855510e6be2b12c85110b0c Author: Russell King Date: Mon Jun 18 14:59:45 2007 +0100 [ARM] Update show_regs/oops register format Add the kernel release and version information to the output of show_regs/oops. Add the CPU PSR register. Avoid using printk to output partial lines; always output a complete line. Re-combine the "Control" and "Table + DAC" lines after nommu separated them; we don't want to waste vertical screen space needlessly. Signed-off-by: Russell King commit d9202429e60d16d39c427cd4e4408cf1827ab9e9 Author: Russell King Date: Sun Jun 17 13:38:27 2007 +0100 [ARM] Add support for pause_on_oops and display preempt/smp options Add calls to oops_enter() and oops_exit() to __die(), so that things like lockdep know when an oops occurs. Add suffixes to the oops report to indicate whether the running kernel has been built with preempt or smp support. Signed-off-by: Russell King