summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/nmi.c
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2001-01-28 17:20:11 +0000
committerjake <jake@FreeBSD.org>2001-01-28 17:20:11 +0000
commitfc82a0c37bf6cf919e4a86e5788686a5d416cf9e (patch)
tree6da9e5e0e64bc1550fb48ae975de62114a840f7b /sys/i386/isa/nmi.c
parent501d5b3f2033d0054d7b9b6d70d20d959ce74f02 (diff)
downloadFreeBSD-src-fc82a0c37bf6cf919e4a86e5788686a5d416cf9e.zip
FreeBSD-src-fc82a0c37bf6cf919e4a86e5788686a5d416cf9e.tar.gz
Clear intr_nesting_level when an interrupt thread has no more
handlers and wants to exit, so it doesn't panic in exit1() which malloc()s with M_WAITOK. Reported by: Bob Bishop <rb@gid.co.uk>
Diffstat (limited to 'sys/i386/isa/nmi.c')
-rw-r--r--sys/i386/isa/nmi.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/i386/isa/nmi.c b/sys/i386/isa/nmi.c
index b9328ae..2649022 100644
--- a/sys/i386/isa/nmi.c
+++ b/sys/i386/isa/nmi.c
@@ -704,6 +704,7 @@ inthand_remove(struct intrhand *idesc)
if ((idesc->ih_flags & INTR_FAST) == 0) {
mtx_enter(&sched_lock, MTX_SPIN);
if (ithd->it_proc->p_stat == SWAIT) {
+ ithd->it_proc->p_intr_nesting_level = 0;
ithd->it_proc->p_stat = SRUN;
setrunqueue(ithd->it_proc);
/*
OpenPOWER on IntegriCloud