diff options
Diffstat (limited to 'usr/src/uts/sfmmu/vm/hat_sfmmu.c')
-rw-r--r-- | usr/src/uts/sfmmu/vm/hat_sfmmu.c | 5 |
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; |