summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-06-16 20:42:29 +0000
committeralc <alc@FreeBSD.org>2002-06-16 20:42:29 +0000
commit078dff0f246379483b322973aa3b645331acc4dc (patch)
tree62997e3271065f27d6f1bde775ba0b17102114cd /sys
parent66987638357fac47e421b9ad8c3baafdcd9cff29 (diff)
downloadFreeBSD-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.c6
-rw-r--r--sys/vm/vm_mmap.c2
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);
}
OpenPOWER on IntegriCloud