summaryrefslogtreecommitdiff
path: root/sys/vm/vm_fault.c
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2004-09-03 05:11:32 +0000
committerAlan Cox <alc@FreeBSD.org>2004-09-03 05:11:32 +0000
commit94ddc7076d38c1ddbea48dda096b2a34e64f17e6 (patch)
tree354bad52910b678ed5b43b366707bc35dc3371aa /sys/vm/vm_fault.c
parent2e3e26a50c48b3a8d7e1dbd77661eed91b938271 (diff)
Notes
Diffstat (limited to 'sys/vm/vm_fault.c')
-rw-r--r--sys/vm/vm_fault.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
index b6e8b521726d..16f8272c0e90 100644
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -1026,9 +1026,13 @@ vm_fault_wire(vm_map_t map, vm_offset_t start, vm_offset_t end,
* read-only sections.
*/
for (va = start; va < end; va += PAGE_SIZE) {
+ if (map->system_map)
+ mtx_lock(&Giant);
rv = vm_fault(map, va,
user_wire ? VM_PROT_READ : VM_PROT_READ | VM_PROT_WRITE,
user_wire ? VM_FAULT_USER_WIRE : VM_FAULT_CHANGE_WIRING);
+ if (map->system_map)
+ mtx_unlock(&Giant);
if (rv) {
if (va != start)
vm_fault_unwire(map, start, va, fictitious);