diff options
author | alc <alc@FreeBSD.org> | 2004-12-11 22:35:16 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-12-11 22:35:16 +0000 |
commit | 4e33a3931313f9eb9cc40dc1ad552f6f312543c1 (patch) | |
tree | 108750e15c777719e7b90e3178dda1c5cfbc9431 | |
parent | dcaf810e82fb4d78b74705448a43813d422bbf64 (diff) | |
download | FreeBSD-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.
-rw-r--r-- | sys/sparc64/sparc64/pmap.c | 3 |
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(); |