summaryrefslogtreecommitdiffstats
path: root/sys/sparc64
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2004-08-13 18:54:21 +0000
committeralc <alc@FreeBSD.org>2004-08-13 18:54:21 +0000
commitf19ef6db5315ca9b60fbbdab72cbe27ce0807c9b (patch)
treed5035f6eaead4588aff6866292dac803b6a2b799 /sys/sparc64
parent5f72b8eba7cd131f08a37baa1f3d6edbad5d468f (diff)
downloadFreeBSD-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.c2
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);
}
OpenPOWER on IntegriCloud