summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_malloc.c
diff options
context:
space:
mode:
authorjake <jake@FreeBSD.org>2001-01-21 19:25:07 +0000
committerjake <jake@FreeBSD.org>2001-01-21 19:25:07 +0000
commit937122ae6dc02a639d13dd06132201548bd7364f (patch)
tree75b59a2832d9f622680ddf91bb405ee9b1f761d4 /sys/kern/kern_malloc.c
parentd326c51b74ea24afabc190774a1b7721c3e6d1e8 (diff)
downloadFreeBSD-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/kern/kern_malloc.c')
-rw-r--r--sys/kern/kern_malloc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/kern/kern_malloc.c b/sys/kern/kern_malloc.c
index 396f02b..ec33f61 100644
--- a/sys/kern/kern_malloc.c
+++ b/sys/kern/kern_malloc.c
@@ -44,6 +44,7 @@
#include <sys/mutex.h>
#include <sys/vmmeter.h>
#include <sys/lock.h>
+#include <sys/proc.h>
#include <vm/vm.h>
#include <vm/vm_param.h>
@@ -147,7 +148,7 @@ malloc(size, type, flags)
#if defined(INVARIANTS) && defined(__i386__)
if (flags == M_WAITOK)
- KASSERT(PCPU_GET(intr_nesting_level) == 0,
+ KASSERT(curproc->p_intr_nesting_level == 0,
("malloc(M_WAITOK) in interrupt context"));
#endif
indx = BUCKETINDX(size);
OpenPOWER on IntegriCloud