summaryrefslogtreecommitdiffstats
path: root/sys/vm/vm_mmap.c
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2002-05-04 02:07:36 +0000
committeralc <alc@FreeBSD.org>2002-05-04 02:07:36 +0000
commitd44b3a12b358680e53f64b25052911a5ea76bcbc (patch)
treeb598d00ef2346fd48055b9b30c73a01d740eb7ac /sys/vm/vm_mmap.c
parent48ff9098aa9307bb2e8449b4f419c02a51884942 (diff)
downloadFreeBSD-src-d44b3a12b358680e53f64b25052911a5ea76bcbc.zip
FreeBSD-src-d44b3a12b358680e53f64b25052911a5ea76bcbc.tar.gz
o Remove GIANT_REQUIRED from vm_map_lookup_entry() and
vm_map_check_protection(). o Call vm_map_check_protection() without Giant held in munmap().
Diffstat (limited to 'sys/vm/vm_mmap.c')
-rw-r--r--sys/vm/vm_mmap.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 8b8b4f8..5b0edc8 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -607,16 +607,15 @@ munmap(td, uap)
if (VM_MIN_ADDRESS > 0 && addr < VM_MIN_ADDRESS)
return (EINVAL);
#endif
- mtx_lock(&Giant);
map = &td->td_proc->p_vmspace->vm_map;
/*
* Make sure entire range is allocated.
*/
- if (!vm_map_check_protection(map, addr, addr + size, VM_PROT_NONE)) {
- mtx_unlock(&Giant);
+ if (!vm_map_check_protection(map, addr, addr + size, VM_PROT_NONE))
return (EINVAL);
- }
+
/* returns nothing but KERN_SUCCESS anyway */
+ mtx_lock(&Giant);
(void) vm_map_remove(map, addr, addr + size);
mtx_unlock(&Giant);
return (0);
OpenPOWER on IntegriCloud