diff options
author | alc <alc@FreeBSD.org> | 2002-06-15 19:10:19 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-06-15 19:10:19 +0000 |
commit | 12d0065cbf0fb7325119c8dc10021c5277098f44 (patch) | |
tree | 5816205d0b91a506a88fcefc7abee15e4215a829 /sys/vm | |
parent | adc2ddac9e71d817246deed734d83ab5dd5648e0 (diff) | |
download | FreeBSD-src-12d0065cbf0fb7325119c8dc10021c5277098f44.zip FreeBSD-src-12d0065cbf0fb7325119c8dc10021c5277098f44.tar.gz |
o Remove GIANT_REQUIRED from useracc() and vsunlock(). Neither
vm_map_check_protection() nor vm_map_unwire() expect Giant
to be held.
Diffstat (limited to 'sys/vm')
-rw-r--r-- | sys/vm/vm_glue.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vm_glue.c b/sys/vm/vm_glue.c index cfa78fe..587695b 100644 --- a/sys/vm/vm_glue.c +++ b/sys/vm/vm_glue.c @@ -140,8 +140,6 @@ useracc(addr, len, rw) boolean_t rv; vm_prot_t prot; - GIANT_REQUIRED; - KASSERT((rw & ~VM_PROT_ALL) == 0, ("illegal ``rw'' argument to useracc (%x)\n", rw)); prot = rw; @@ -174,12 +172,15 @@ vslock(addr, len) round_page((vm_offset_t)addr + len), FALSE); } +/* + * MPSAFE + */ void vsunlock(addr, len) caddr_t addr; u_int len; { - GIANT_REQUIRED; + vm_map_unwire(&curproc->p_vmspace->vm_map, trunc_page((vm_offset_t)addr), round_page((vm_offset_t)addr + len), FALSE); |