diff options
author | alc <alc@FreeBSD.org> | 2002-06-16 20:42:29 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-06-16 20:42:29 +0000 |
commit | 078dff0f246379483b322973aa3b645331acc4dc (patch) | |
tree | 62997e3271065f27d6f1bde775ba0b17102114cd /sys | |
parent | 66987638357fac47e421b9ad8c3baafdcd9cff29 (diff) | |
download | FreeBSD-src-078dff0f246379483b322973aa3b645331acc4dc.zip FreeBSD-src-078dff0f246379483b322973aa3b645331acc4dc.tar.gz |
o Remove GIANT_REQUIRED from vm_fault_user_wire().
o Move pmap_pageable() outside of Giant in vm_fault_unwire().
(pmap_pageable() is a no-op on all supported architectures.)
o Remove the acquisition and release of Giant from mlock().
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_fault.c | 6 | ||||
-rw-r--r-- | sys/vm/vm_mmap.c | 2 |
2 files changed, 1 insertions, 7 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 3e0edeb..3023f8a 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -938,13 +938,10 @@ vm_fault_user_wire(map, start, end) vm_map_t map; vm_offset_t start, end; { - vm_offset_t va; pmap_t pmap; int rv; - GIANT_REQUIRED; - pmap = vm_map_pmap(map); /* @@ -996,14 +993,13 @@ vm_fault_unwire(map, start, end) vm_page_unwire(PHYS_TO_VM_PAGE(pa), 1); } } + mtx_unlock(&Giant); /* * Inform the physical mapping system that the range of addresses may * fault, so that page tables and such may be unwired themselves. */ pmap_pageable(pmap, start, end, TRUE); - - mtx_unlock(&Giant); } /* diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c index b2028a2..8b47c87 100644 --- a/sys/vm/vm_mmap.c +++ b/sys/vm/vm_mmap.c @@ -1011,10 +1011,8 @@ mlock(td, uap) return (error); #endif - mtx_lock(&Giant); error = vm_map_wire(&td->td_proc->p_vmspace->vm_map, addr, addr + size, TRUE); - mtx_unlock(&Giant); return (error == KERN_SUCCESS ? 0 : ENOMEM); } |