summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-12-11 22:35:16 +0000
committeralc <alc@FreeBSD.org>2004-12-11 22:35:16 +0000
commit4e33a3931313f9eb9cc40dc1ad552f6f312543c1 (patch)
tree108750e15c777719e7b90e3178dda1c5cfbc9431 /sys
parentdcaf810e82fb4d78b74705448a43813d422bbf64 (diff)
downloadFreeBSD-src-4e33a3931313f9eb9cc40dc1ad552f6f312543c1.zip
FreeBSD-src-4e33a3931313f9eb9cc40dc1ad552f6f312543c1.tar.gz
Pass VM_ALLOC_NOBUSY to vm_page_grab() so that we don't have to call
vm_page_flag_clear(PG_BUSY). The object lock is held the entire time. Thus, whether or not the PG_BUSY flag is set is invisible to others.
Diffstat (limited to 'sys')
-rw-r--r--sys/sparc64/sparc64/pmap.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c
index c07d5d2..18cd0f9 100644
--- a/sys/sparc64/sparc64/pmap.c
+++ b/sys/sparc64/sparc64/pmap.c
@@ -1022,11 +1022,10 @@ pmap_pinit(pmap_t pm)
VM_OBJECT_LOCK(pm->pm_tsb_obj);
for (i = 0; i < TSB_PAGES; i++) {
- m = vm_page_grab(pm->pm_tsb_obj, i,
+ m = vm_page_grab(pm->pm_tsb_obj, i, VM_ALLOC_NOBUSY |
VM_ALLOC_RETRY | VM_ALLOC_WIRED | VM_ALLOC_ZERO);
vm_page_lock_queues();
- vm_page_flag_clear(m, PG_BUSY);
m->valid = VM_PAGE_BITS_ALL;
m->md.pmap = pm;
vm_page_unlock_queues();
OpenPOWER on IntegriCloud