Messages in this thread Patch in this message | | | Date | Mon, 23 Mar 1998 22:27:29 +0100 (CET) | From | MOLNAR Ingo <> | Subject | [patch] boot+hang on 2.1.90+SMP, IOAPIC |
| |
those experiencing hangs/keyboard timeouts during bootup on SMP systems, does the following patch help? It creates a custom mptable for systems where we have found no IRQ entries in the mptable.
-- mingo
--- linux/arch/i386/kernel/io_apic.c.orig Sat Mar 21 06:48:48 1998 +++ linux/arch/i386/kernel/io_apic.c Sat Mar 21 09:21:25 1998 @@ -604,7 +604,24 @@ return in_ioapic_list(ioapic_blacklist); } +static void construct_default_ISA_mptable (void) +{ + int i; + for (i=0; i<16; i++) { + if (!IO_APIC_IRQ(i)) + continue; + + mp_irqs[i].mpc_irqtype = 0; + mp_irqs[i].mpc_irqflag = 0; + mp_irqs[i].mpc_srcbus = 0; + mp_irqs[i].mpc_srcbusirq = i; + mp_irqs[i].mpc_dstapic = 0; + mp_irqs[i].mpc_dstirq = i; + } + mp_irq_entries = i; +} + void setup_IO_APIC (void) { int i; @@ -630,11 +647,15 @@ for (i=0; i<nr_ioapic_registers; i++) clear_IO_APIC_irq (i); -#if DEBUG_1 - for (i=0; i<16; i++) - if (IO_APIC_IRQ(i)) - setup_IO_APIC_irq_ISA_default (i); -#endif + /* + * If there are no explicit mp irq entries: it's either one of the + * default configuration types or we are broken. In both cases it's + * fine to set up most of the low 16 IOAPIC pins to ISA defaults. + */ + if (!mp_irq_entries) { + printk("no explicit IRQ entries, using default mptable\n"); + construct_default_ISA_mptable(); + } /* * the following IO-APIC's can be enabled: @@ -660,6 +681,7 @@ } init_IO_APIC_traps(); + setup_IO_APIC_irqs (); if (nmi_pin == -1)
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu
| |