summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-06-07 23:24:10 +0000
committeralc <alc@FreeBSD.org>2003-06-07 23:24:10 +0000
commit3812b42f43d677f99068b8386d8afae5c614c9ec (patch)
tree7eb7e823f8a4e1044f94403ed60c9a323a385e11 /sys/vm
parente448f32b5288cd0687b93ea802a60f2dd9b488cd (diff)
downloadFreeBSD-src-3812b42f43d677f99068b8386d8afae5c614c9ec.zip
FreeBSD-src-3812b42f43d677f99068b8386d8afae5c614c9ec.tar.gz
Lock the kernel object in kmem_alloc().
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_kern.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/vm_kern.c b/sys/vm/vm_kern.c
index b0f7e61..b82bfe0 100644
--- a/sys/vm/vm_kern.c
+++ b/sys/vm/vm_kern.c
@@ -196,8 +196,10 @@ kmem_alloc(map, size)
for (i = 0; i < size; i += PAGE_SIZE) {
vm_page_t mem;
+ VM_OBJECT_LOCK(kernel_object);
mem = vm_page_grab(kernel_object, OFF_TO_IDX(offset + i),
VM_ALLOC_ZERO | VM_ALLOC_RETRY);
+ VM_OBJECT_UNLOCK(kernel_object);
if ((mem->flags & PG_ZERO) == 0)
pmap_zero_page(mem);
vm_page_lock_queues();
OpenPOWER on IntegriCloud