Fix isa_wrongintr. The APIC vector was being directly assigned to a C
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 10 Sep 2005 06:48:08 +0000 (06:48 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 10 Sep 2005 06:48:08 +0000 (06:48 +0000)
commit385b2dc260d83cafbfafd72b7c3ecbf5f09d2229
treea0b702b73a9cb60649d50b013507c754cb702c79
parenta44bdeecf6ab5874b843b7542808fbcce1cdd9e7
Fix isa_wrongintr.  The APIC vector was being directly assigned to a C
function, resulting in register corruption and other nasties.  Generate
a set of assembly functions to handle wrong-interrupt assignments.  For
now we just EOI the apic and iret.

This bug could cause an SMP box to crash on boot if a spurious IRQ #0
interrupt occurs while it is testing for 8254 interrupt delivery.
sys/i386/apic/apic_vector.s
sys/i386/isa/apic_vector.s
sys/i386/isa/intr_machdep.c
sys/i386/isa/intr_machdep.h
sys/platform/pc32/apic/apic_vector.s
sys/platform/pc32/isa/apic_vector.s
sys/platform/pc32/isa/intr_machdep.c
sys/platform/pc32/isa/intr_machdep.h