diff options
author | jake <jake@FreeBSD.org> | 2001-01-21 19:25:07 +0000 |
---|---|---|
committer | jake <jake@FreeBSD.org> | 2001-01-21 19:25:07 +0000 |
commit | 937122ae6dc02a639d13dd06132201548bd7364f (patch) | |
tree | 75b59a2832d9f622680ddf91bb405ee9b1f761d4 /sys/i386/isa/intr_machdep.c | |
parent | d326c51b74ea24afabc190774a1b7721c3e6d1e8 (diff) | |
download | FreeBSD-src-937122ae6dc02a639d13dd06132201548bd7364f.zip FreeBSD-src-937122ae6dc02a639d13dd06132201548bd7364f.tar.gz |
Make intr_nesting_level per-process, rather than per-cpu. Setup
interrupt threads to run with it always >= 1, so that malloc can
detect M_WAITOK from "interrupt" context. This is also necessary
in order to context switch from sched_ithd() directly.
Reviewed By: peter
Diffstat (limited to 'sys/i386/isa/intr_machdep.c')
-rw-r--r-- | sys/i386/isa/intr_machdep.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/i386/isa/intr_machdep.c b/sys/i386/isa/intr_machdep.c index 00f5f23..b9328ae 100644 --- a/sys/i386/isa/intr_machdep.c +++ b/sys/i386/isa/intr_machdep.c @@ -577,6 +577,7 @@ inthand_add(const char *name, int irq, driver_intr_t handler, void *arg, if (errcode) panic("inthand_add: Can't create " "interrupt thread"); + p->p_intr_nesting_level = 1; p->p_rtprio.type = RTP_PRIO_ITHREAD; p->p_stat = SWAIT; /* we're idle */ |