summaryrefslogtreecommitdiffstats
path: root/sys/kern/uipc_jumbo.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2003-06-11 21:23:04 +0000
committeralc <alc@FreeBSD.org>2003-06-11 21:23:04 +0000
commit4451de3f803f62601c595d50e50cd232d13906aa (patch)
treee5f3da8fe13582bb1437979560d748de3e053c2a /sys/kern/uipc_jumbo.c
parenta9db88842f7fe8fcfa1b5852d314a8a0dd2d5c30 (diff)
downloadFreeBSD-src-4451de3f803f62601c595d50e50cd232d13906aa.zip
FreeBSD-src-4451de3f803f62601c595d50e50cd232d13906aa.tar.gz
Lock the vm object when removing a page.
Diffstat (limited to 'sys/kern/uipc_jumbo.c')
-rw-r--r--sys/kern/uipc_jumbo.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/kern/uipc_jumbo.c b/sys/kern/uipc_jumbo.c
index 0956a86..8a7c546 100644
--- a/sys/kern/uipc_jumbo.c
+++ b/sys/kern/uipc_jumbo.c
@@ -222,6 +222,7 @@ jumbo_pg_free(vm_offset_t addr)
paddr = pmap_kextract((vm_offset_t)addr);
pg = PHYS_TO_VM_PAGE(paddr);
+ VM_OBJECT_LOCK(jumbo_vm_object);
if (pg->object != jumbo_vm_object) {
jumbo_vmuiomove_pgs_freed++;
/* if(vm_page_lookup(jumbo_vm_object, atop(addr - jumbo_basekva)))
@@ -235,6 +236,7 @@ jumbo_pg_free(vm_offset_t addr)
vm_page_free(pg);
vm_page_unlock_queues();
}
+ VM_OBJECT_UNLOCK(jumbo_vm_object);
mtx_lock(&jumbo_mutex);
OpenPOWER on IntegriCloud