On a hunch, I tried clearing the IO-APIC pins when disabling symmetric
IO mode. This fixes the hanging reboot problem for my ALR Revolution
Quad6. Does this work for anyone else?
James
--- linux/arch/i386/kernel/io_apic.c.orig Mon Feb 1 17:28:07 1999
+++ linux/arch/i386/kernel/io_apic.c Mon Feb 1 16:35:12 1999
@@ -202,7 +202,7 @@
DO_ACTION( mask, 0, |= 0x00010000, io_apic_sync()) /* mask = 1 */
DO_ACTION( unmask, 0, &= 0xfffeffff, ) /* mask = 0 */
-static void __init clear_IO_APIC_pin(unsigned int pin)
+static void clear_IO_APIC_pin(unsigned int pin)
{
struct IO_APIC_route_entry entry;
@@ -793,9 +793,13 @@
*/
void init_pic_mode(void)
{
+ int pin;
+
printk("disabling symmetric IO mode... ");
outb_p(0x70, 0x22);
outb_p(0x00, 0x23);
+ for (pin = 0; pin < nr_ioapic_registers; pin++)
+ clear_IO_APIC_pin(pin);
printk("...done.\n");
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/