diff options
author | alc <alc@FreeBSD.org> | 2004-07-13 02:49:22 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-07-13 02:49:22 +0000 |
commit | ea94acfaa697b466403b3bf0b16d4772ff5ab621 (patch) | |
tree | 6940f183ade6a21c79f62549b14a7c432d9a255a /sys/i386 | |
parent | d35148311bebc5f935642333bd965c18b7682a74 (diff) | |
download | FreeBSD-src-ea94acfaa697b466403b3bf0b16d4772ff5ab621.zip FreeBSD-src-ea94acfaa697b466403b3bf0b16d4772ff5ab621.tar.gz |
Push down the acquisition and release of the page queues lock into
pmap_remove_pages(). (The implementation of pmap_remove_pages() is
optional. If pmap_remove_pages() is unimplemented, the acquisition and
release of the page queues lock is unnecessary.)
Remove spl calls from the alpha, arm, and ia64 pmap_remove_pages().
Diffstat (limited to 'sys/i386')
-rw-r--r-- | sys/i386/i386/pmap.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/i386/i386/pmap.c b/sys/i386/i386/pmap.c index 74d6f92..52eb344 100644 --- a/sys/i386/i386/pmap.c +++ b/sys/i386/i386/pmap.c @@ -2531,7 +2531,7 @@ pmap_remove_pages(pmap, sva, eva) return; } #endif - mtx_assert(&vm_page_queue_mtx, MA_OWNED); + vm_page_lock_queues(); PMAP_LOCK(pmap); sched_pin(); for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { @@ -2595,6 +2595,7 @@ pmap_remove_pages(pmap, sva, eva) sched_unpin(); pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); + vm_page_unlock_queues(); } /* |