o Remove GIANT_REQUIRED from useracc() and vsunlock(). Neither
vm_map_check_protection() nor vm_map_unwire() expect Giant to be held.
This commit is contained in:
parent
c4a0032fe3
commit
319490fb7b
@ -140,8 +140,6 @@ useracc(addr, len, rw)
|
|||||||
boolean_t rv;
|
boolean_t rv;
|
||||||
vm_prot_t prot;
|
vm_prot_t prot;
|
||||||
|
|
||||||
GIANT_REQUIRED;
|
|
||||||
|
|
||||||
KASSERT((rw & ~VM_PROT_ALL) == 0,
|
KASSERT((rw & ~VM_PROT_ALL) == 0,
|
||||||
("illegal ``rw'' argument to useracc (%x)\n", rw));
|
("illegal ``rw'' argument to useracc (%x)\n", rw));
|
||||||
prot = rw;
|
prot = rw;
|
||||||
@ -174,12 +172,15 @@ vslock(addr, len)
|
|||||||
round_page((vm_offset_t)addr + len), FALSE);
|
round_page((vm_offset_t)addr + len), FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* MPSAFE
|
||||||
|
*/
|
||||||
void
|
void
|
||||||
vsunlock(addr, len)
|
vsunlock(addr, len)
|
||||||
caddr_t addr;
|
caddr_t addr;
|
||||||
u_int len;
|
u_int len;
|
||||||
{
|
{
|
||||||
GIANT_REQUIRED;
|
|
||||||
vm_map_unwire(&curproc->p_vmspace->vm_map,
|
vm_map_unwire(&curproc->p_vmspace->vm_map,
|
||||||
trunc_page((vm_offset_t)addr),
|
trunc_page((vm_offset_t)addr),
|
||||||
round_page((vm_offset_t)addr + len), FALSE);
|
round_page((vm_offset_t)addr + len), FALSE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user