The patch titled i386: pci_get_device() called from interrupt in reboot fixups has been removed from the -mm tree. Its filename was i386-pci_get_device-called-from-interrupt-in-reboot-fixups.patch This patch was dropped because it was merged into mainline or a subsystem tree ------------------------------------------------------ Subject: i386: pci_get_device() called from interrupt in reboot fixups From: "Denis V. Lunev" <den@xxxxxxxxxx> The following calltrace is possible now: handle_sysrq machine_emergency_restart mach_reboot_fixups pci_get_device pci_get_subsys down_read The patch skips reboot fixup if called from sysrq-B code. Signed-off-by: Denis V. Lunev <den@xxxxxxxxxx> Cc: Andi Kleen <ak@xxxxxxx> Cc: Greg KH <greg@xxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/i386/kernel/reboot_fixups.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletion(-) diff -puN arch/i386/kernel/reboot_fixups.c~i386-pci_get_device-called-from-interrupt-in-reboot-fixups arch/i386/kernel/reboot_fixups.c --- a/arch/i386/kernel/reboot_fixups.c~i386-pci_get_device-called-from-interrupt-in-reboot-fixups +++ a/arch/i386/kernel/reboot_fixups.c @@ -11,6 +11,7 @@ #include <asm/delay.h> #include <linux/pci.h> +#include <linux/interrupt.h> #include <asm/reboot_fixups.h> #include <asm/msr.h> @@ -56,6 +57,11 @@ void mach_reboot_fixups(void) struct pci_dev *dev; int i; + /* we can be called from sysrq-B code. In such a case it is + * prohibited to dig PCI */ + if (in_interrupt()) + return; + for (i=0; i < ARRAY_SIZE(fixups_table); i++) { cur = &(fixups_table[i]); dev = pci_get_device(cur->vendor, cur->device, NULL); @@ -65,4 +71,3 @@ void mach_reboot_fixups(void) cur->reboot_fixup(dev); } } - _ Patches currently in -mm which might be from den@xxxxxxxxxx are - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html