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/
This archive was generated by hypermail 2b29 : Sat Jun 07 2003 - 22:00:22 EST