It is called from mp_register_gsi(), which is called on the device resume path. Kernel oopses. Program received signal SIGEMT, Emulation trap. mp_find_ioapic (gsi=1) at arch/i386/kernel/mpparse.c:862 862 { (gdb) bt #0 mp_find_ioapic (gsi=1) at arch/i386/kernel/mpparse.c:862 #1 0xc0111de1 in mp_register_gsi (gsi=17, edge_level=1, active_high_low=1) at arch/i386/kernel/mpparse.c:1042 #2 0xc010e164 in acpi_register_gsi (gsi=17, edge_level=9, active_high_low=9) at arch/i386/kernel/acpi/boot.c:460 #3 0xc01ef27e in acpi_pci_irq_enable (dev=0xc16da800) at drivers/acpi/pci_irq.c:382 #4 0xc02e65b0 in pcibios_enable_device (dev=0xc16da800, mask=9) at arch/i386/pci/common.c:246 #5 0xc01cddb2 in pci_enable_device_bars (dev=0xc16da800, bars=2047) at drivers/pci/pci.c:372 #6 0xc01cdddc in pci_enable_device (dev=0x9) at drivers/pci/pci.c:389 #7 0xc02dcdaf in intel8x0_resume (card=0xcfd4d000, state=0) at sound/pci/intel8x0.c:2230 #8 0xc02afff0 in snd_card_pci_resume (dev=0xc16da800) at sound/core/init.c:804 #9 0xc01cf2b2 in pci_device_resume (dev=0x9) at drivers/pci/pci-driver.c:334 #10 0xc02121fa in resume_device (dev=0xc16e9d48) at drivers/base/power/resume.c:26 #11 0xc021223f in dpm_resume () at drivers/base/power/resume.c:40 #12 0xc0212288 in device_resume () at drivers/base/power/resume.c:57 #13 0xc012c988 in suspend_save_image () at kernel/power/swsusp.c:674 #14 0xc012cb85 in do_magic_suspend_2 () at kernel/power/swsusp.c:796 #15 0xc02e908d in do_magic () Signed-off-by: Andrew Morton --- 25-akpm/arch/i386/kernel/mpparse.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-) diff -puN arch/i386/kernel/mpparse.c~mp_find_ioapic-oops-fix arch/i386/kernel/mpparse.c --- 25/arch/i386/kernel/mpparse.c~mp_find_ioapic-oops-fix 2004-05-31 03:03:19.145447536 -0700 +++ 25-akpm/arch/i386/kernel/mpparse.c 2004-05-31 03:03:26.969258136 -0700 @@ -857,7 +857,7 @@ struct mp_ioapic_routing { } mp_ioapic_routing[MAX_IO_APICS]; -static int __init mp_find_ioapic ( +static int mp_find_ioapic ( int gsi) { int i = 0; _