This occurs when the first irq scan takes place, so no hard disc
detection for example. Here is a fix that is slightly ugly but does
the job. I am using a kernel with the patch applied right now, and it
does boot). The patch hijacks the pin==-1 test by setting all the pins
to -1 before you can get eaten by the bug.
Duncan (-:
--- linux-2.1.103/arch/i386/kernel/io_apic.c.dist Thu May 21 22:54:00 1998
+++ linux-2.1.103/arch/i386/kernel/io_apic.c Thu May 21 22:56:12 1998
@@ -988,3 +988,9 @@
print_IO_APIC();
}
+__initfunc(void setup_no_apic(void))
+{
+ int i;
+ for (i=0; i<NR_IRQS; i++)
+ irq_2_pin[i]=-1;
+}
--- linux-2.1.103/arch/i386/kernel/irq.h.dist Thu May 21 22:49:06 1998
+++ linux-2.1.103/arch/i386/kernel/irq.h Thu May 21 22:48:40 1998
@@ -27,6 +27,7 @@
void print_IO_APIC (void);
extern unsigned int io_apic_irqs;
+extern void setup_no_apic(void); /* Code to avoid panics due to no APIC */
#define IO_APIC_VECTOR(irq) (0x51+((irq)<<3))
--- linux-2.1.103/arch/i386/kernel/smp.c.dist Thu May 21 22:56:43 1998
+++ linux-2.1.103/arch/i386/kernel/smp.c Thu May 21 22:59:49 1998
@@ -970,6 +970,7 @@
if (!smp_found_config)
{
printk(KERN_NOTICE "SMP motherboard not detected. Using dummy APIC emulation.\n");
+ setup_no_apic(); /* Leave this out for booting kernel panics. */
io_apic_irqs = 0;
goto smp_done;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu