IOAPIC not disabled on shutdown of X86_UP_IOAPIC kernel 2.4.18

Philip Thomas (PThomas@pillardata.com)
Tue, 3 Jun 2003 17:36:19 -0700


The following patch causes the IOAPIC to be disabled during shutdown of
kernels compiled with either the CONFIG_SMP or the CONFIG_X86_UP_IOAPIC
options (either of which causes the IOAPIC to be initialized).
Previously, the IOAPIC was disabled only during shutdown of CONFIG_SMP
kernels, and not CONFIG_X86_UP_IOAPIC kernels. This caused unexpected
IRQ errors on warm boot of CONFIG_X86_UP_IOAPIC kernel because BIOS did
not reset the IOAPIC.

Phil

--- arch/i386/kernel/process.c.orig 2003-06-03 17:03:28.000000000
-0700
+++ arch/i386/kernel/process.c 2003-06-03 17:03:41.000000000 -0700
@@ -399,11 +399,17 @@
__asm__ __volatile__ ("hlt");
}
/*
- * Stop all CPUs and turn off local APICs and the IO-APIC, so
+ * Stop all CPUs and turn off local APICs, so
* other OSs see a clean IRQ state.
*/
if (!netdump_func)
smp_send_stop();
+#endif
+
+#if CONFIG_X86_IOAPIC
+ /*
+ * Turn off the IO-APIC, so other OSs see a clean IRQ state.
+ */
disable_IO_APIC();
#endif

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/