freebsd-nq/sys/amd64/isa
Bruce Evans 79d4e25bea Fixed panics in npx exception handling. When using IRQ13 exception
handling, SMPng always switches the npx context away from curproc
before calling the handler, so the handler always paniced.  When using
exception 16 exception handling, SMPng sometimes switches the npx
context away from curproc before calling the handler, so the handler
sometimes paniced.  Also, we didn't lock the context while using it,
so we sometimes didn't detect the switch and then paniced in a less
controlled way.

Just lock the context while using it, and return without doing anything
except clearing the busy latch if the context is not for curproc.  This
fixes the exception 16 case and makes the IRQ13 case harmless.  In both
cases, the instruction that caused the exception is restarted and the
exception repeats.  In the exception 16 case, we soon get an exception
that can be handled without doing anything special.  In the IRQ13 case,
we get an easy to kill hung process.
2001-05-02 13:06:58 +00:00
..
atpic_vector.S Don't enable interrupts before calling sched_ithd for threaded interrupts. 2001-03-05 04:37:54 +00:00
clock.c Add in a missing call to forward_hardclock() in the SMP case. 2001-04-28 01:37:44 +00:00
icu_ipl.s Remove the leading underscore from all symbols defined in x86 asm 2001-02-25 06:29:04 +00:00
icu_ipl.S Remove the leading underscore from all symbols defined in x86 asm 2001-02-25 06:29:04 +00:00
icu_vector.s Don't enable interrupts before calling sched_ithd for threaded interrupts. 2001-03-05 04:37:54 +00:00
icu_vector.S Don't enable interrupts before calling sched_ithd for threaded interrupts. 2001-03-05 04:37:54 +00:00
icu.h EEK! I missed a couple of places with the 24->32 interrupt change. 2001-01-19 10:55:13 +00:00
intr_machdep.c Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
intr_machdep.h Overhaul of the SMP code. Several portions of the SMP kernel support have 2001-04-27 19:28:25 +00:00
isa_dma.c Add PnP probe methods to some common AT hardware drivers. In each case, 2000-06-23 07:44:33 +00:00
isa_dma.h Stop isadma from abusing the B_READ, B_RAW and B_WRITE flags. 2000-03-13 10:19:32 +00:00
isa.c Convert the type of bus_space_handle_t of pc98 from structure into 2000-10-20 02:42:06 +00:00
isa.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
ithread.c - Add a new ithread_schedule() function to do the bulk of the work of 2001-02-20 10:25:29 +00:00
nmi.c Undo part of the tangle of having sys/lock.h and sys/mutex.h included in 2001-05-01 08:13:21 +00:00
npx.c Fixed panics in npx exception handling. When using IRQ13 exception 2001-05-02 13:06:58 +00:00
timerreg.h $Id$ -> $FreeBSD$ 1999-08-28 01:08:13 +00:00
vector.s Export intrnames and intrcnt as sysctls (hw.nintr, hw.intrnames and 2001-03-23 03:45:17 +00:00
vector.S Export intrnames and intrcnt as sysctls (hw.nintr, hw.intrnames and 2001-03-23 03:45:17 +00:00