summaryrefslogtreecommitdiff
path: root/usr/src/uts/sfmmu/vm/hat_sfmmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/sfmmu/vm/hat_sfmmu.c')
-rw-r--r--usr/src/uts/sfmmu/vm/hat_sfmmu.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/usr/src/uts/sfmmu/vm/hat_sfmmu.c b/usr/src/uts/sfmmu/vm/hat_sfmmu.c
index 76617cb130..1f0ef11096 100644
--- a/usr/src/uts/sfmmu/vm/hat_sfmmu.c
+++ b/usr/src/uts/sfmmu/vm/hat_sfmmu.c
@@ -86,6 +86,7 @@
#include <sys/fpu/fpusystm.h>
#include <vm/mach_kpm.h>
#include <sys/callb.h>
+#include <sys/zone.h>
#ifdef DEBUG
#define SFMMU_VALIDATE_HMERID(hat, rid, saddr, len) \
@@ -934,6 +935,7 @@ static kphysm_setup_vector_t sfmmu_update_vec = {
} \
pp->p_mapping = hme; \
pp->p_share++; \
+ zone_add_page(pp); \
}
/*
@@ -954,6 +956,7 @@ static kphysm_setup_vector_t sfmmu_update_vec = {
\
ASSERT(pp->p_share > 0); \
pp->p_share--; \
+ zone_rm_page(pp); \
\
if (hme->hme_prev) { \
ASSERT(pp->p_mapping != hme); \
@@ -7346,6 +7349,8 @@ retry:
tpp->p_mapping = NULL;
dpp->p_share = tpp->p_share;
tpp->p_share = 0;
+ dpp->p_zoneid = tpp->p_zoneid;
+ tpp->p_zoneid = ALL_ZONES;
while (index != 0) {
index = index >> 1;