diff options
author | alc <alc@FreeBSD.org> | 2004-08-13 18:54:21 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-08-13 18:54:21 +0000 |
commit | f19ef6db5315ca9b60fbbdab72cbe27ce0807c9b (patch) | |
tree | d5035f6eaead4588aff6866292dac803b6a2b799 /sys/sparc64 | |
parent | 5f72b8eba7cd131f08a37baa1f3d6edbad5d468f (diff) | |
download | FreeBSD-src-f19ef6db5315ca9b60fbbdab72cbe27ce0807c9b.zip FreeBSD-src-f19ef6db5315ca9b60fbbdab72cbe27ce0807c9b.tar.gz |
Add pmap locking to pmap_remove_all().
Diffstat (limited to 'sys/sparc64')
-rw-r--r-- | sys/sparc64/sparc64/pmap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/sparc64/sparc64/pmap.c b/sys/sparc64/sparc64/pmap.c index ea5c9bb..f76a45c1 100644 --- a/sys/sparc64/sparc64/pmap.c +++ b/sys/sparc64/sparc64/pmap.c @@ -1188,6 +1188,7 @@ pmap_remove_all(vm_page_t m) continue; pm = TTE_GET_PMAP(tp); va = TTE_GET_VA(tp); + PMAP_LOCK(pm); if ((tp->tte_data & TD_WIRED) != 0) pm->pm_stats.wired_count--; if ((tp->tte_data & TD_REF) != 0) @@ -1201,6 +1202,7 @@ pmap_remove_all(vm_page_t m) pm->pm_stats.resident_count--; pmap_cache_remove(m, va); TTE_ZERO(tp); + PMAP_UNLOCK(pm); } vm_page_flag_clear(m, PG_WRITEABLE); } |