Avoid recursive acquisition of the page queues lock in pmap_unuse_pt().
Approved by: re
This commit is contained in:
parent
e70e70c250
commit
1195f22080
@ -1213,7 +1213,9 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte)
|
||||
(pmap->pm_ptphint->pindex == ptepindex)) {
|
||||
mpte = pmap->pm_ptphint;
|
||||
} else {
|
||||
mpte = pmap_page_lookup(pmap->pm_pteobj, ptepindex);
|
||||
while ((mpte = vm_page_lookup(pmap->pm_pteobj, ptepindex)) != NULL &&
|
||||
vm_page_sleep_if_busy(mpte, FALSE, "pulook"))
|
||||
vm_page_lock_queues();
|
||||
pmap->pm_ptphint = mpte;
|
||||
}
|
||||
}
|
||||
|
@ -1213,7 +1213,9 @@ pmap_unuse_pt(pmap_t pmap, vm_offset_t va, vm_page_t mpte)
|
||||
(pmap->pm_ptphint->pindex == ptepindex)) {
|
||||
mpte = pmap->pm_ptphint;
|
||||
} else {
|
||||
mpte = pmap_page_lookup(pmap->pm_pteobj, ptepindex);
|
||||
while ((mpte = vm_page_lookup(pmap->pm_pteobj, ptepindex)) != NULL &&
|
||||
vm_page_sleep_if_busy(mpte, FALSE, "pulook"))
|
||||
vm_page_lock_queues();
|
||||
pmap->pm_ptphint = mpte;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user