diff options
author | jake <jake@FreeBSD.org> | 2001-01-28 17:20:11 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2001-01-28 17:20:11 +0000 |
commit | fc82a0c37bf6cf919e4a86e5788686a5d416cf9e (patch) | |
tree | 6da9e5e0e64bc1550fb48ae975de62114a840f7b /sys/i386/isa/nmi.c | |
parent | 501d5b3f2033d0054d7b9b6d70d20d959ce74f02 (diff) | |
download | FreeBSD-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.c | 1 |
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); /* |