summaryrefslogtreecommitdiffstats
path: root/sys/amd64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-07-13 02:49:22 +0000
committeralc <alc@FreeBSD.org>2004-07-13 02:49:22 +0000
commitea94acfaa697b466403b3bf0b16d4772ff5ab621 (patch)
tree6940f183ade6a21c79f62549b14a7c432d9a255a /sys/amd64
parentd35148311bebc5f935642333bd965c18b7682a74 (diff)
downloadFreeBSD-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/amd64')
-rw-r--r--sys/amd64/amd64/pmap.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/amd64/amd64/pmap.c b/sys/amd64/amd64/pmap.c
index 8748923..8f9d880 100644
--- a/sys/amd64/amd64/pmap.c
+++ b/sys/amd64/amd64/pmap.c
@@ -2459,7 +2459,7 @@ pmap_remove_pages(pmap, sva, eva)
return;
}
#endif
- mtx_assert(&vm_page_queue_mtx, MA_OWNED);
+ vm_page_lock_queues();
PMAP_LOCK(pmap);
for (pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) {
@@ -2521,6 +2521,7 @@ pmap_remove_pages(pmap, sva, eva)
}
pmap_invalidate_all(pmap);
PMAP_UNLOCK(pmap);
+ vm_page_unlock_queues();
}
/*
OpenPOWER on IntegriCloud