summaryrefslogtreecommitdiff
path: root/usr/src/uts/sun4u/os/ecc.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/uts/sun4u/os/ecc.c')
-rw-r--r--usr/src/uts/sun4u/os/ecc.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/usr/src/uts/sun4u/os/ecc.c b/usr/src/uts/sun4u/os/ecc.c
index 10b6cb523f..bd933377e4 100644
--- a/usr/src/uts/sun4u/os/ecc.c
+++ b/usr/src/uts/sun4u/os/ecc.c
@@ -247,23 +247,21 @@ error_init(void)
}
/*
- * Success flags for ecc_page_zero
+ * Flags for ecc_page_zero DTrace probe since ecc_page_zero() is called
+ * as a softint handler.
*/
#define PAGE_ZERO_SUCCESS 0
#define PAGE_ZERO_FAIL_NOLOCK 1
#define PAGE_ZERO_FAIL_ONTRAP 2
-/*
- * arg is a physical address - zero out the page that contains it
- */
void
ecc_page_zero(void *arg)
{
uint64_t pa = (uint64_t)arg;
- page_t *pp = page_numtopp_nolock((pfn_t)(pa >> MMU_PAGESHIFT));
int ret, success_flag;
+ page_t *pp = page_numtopp_nolock(mmu_btop(pa));
- if (pp == NULL || !page_isretired(pp))
+ if (page_retire_check(pa, NULL) != 0)
return;
/*