diff options
| author | Alan Cox <alc@FreeBSD.org> | 2002-12-03 04:00:42 +0000 |
|---|---|---|
| committer | Alan Cox <alc@FreeBSD.org> | 2002-12-03 04:00:42 +0000 |
| commit | f4dcf9555ec59bc1a41e0c11f8fdcf531b1bbe60 (patch) | |
| tree | 0817e774128a35a2c0d028836809e83b2d828dc8 /sys | |
| parent | b9742d01f45e7a020359cfc0ea3245fea2d5558d (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/amd64/amd64/pmap.c | 4 | ||||
| -rw-r--r-- | sys/i386/i386/pmap.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c index c842eff0c7c7..8ee588604305 100644 --- a/sys/amd64/amd64/pmap.c +++ b/sys/amd64/amd64/pmap.c @@ -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; } } diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index c842eff0c7c7..8ee588604305 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -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; } } |
