diff options
author | alc <alc@FreeBSD.org> | 2003-06-07 23:24:10 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2003-06-07 23:24:10 +0000 |
commit | 3812b42f43d677f99068b8386d8afae5c614c9ec (patch) | |
tree | 7eb7e823f8a4e1044f94403ed60c9a323a385e11 /sys/vm | |
parent | e448f32b5288cd0687b93ea802a60f2dd9b488cd (diff) | |
download | FreeBSD-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.c | 2 |
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(); |