IOAPIC not disabled on shutdown of X86_UP_IOAPIC kernel 2.4.18

From: Philip Thomas (PThomas@pillardata.com)
Date: Tue Jun 03 2003 - 19:36:19 EST


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