Index: kernel/arch/sparc64/src/mm/sun4u/as.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4u/as.c	(revision e2a0d76262c824f700198bedc668eb60c9ab9cfa)
+++ kernel/arch/sparc64/src/mm/sun4u/as.c	(revision 08bc23d60e18d91f38bdbbfc8ee0bc0a7c796879)
@@ -63,19 +63,14 @@
 {
 #ifdef CONFIG_TSB
-	/*
-	 * The order must be calculated with respect to the emulated
-	 * 16K page size.
-	 *
-	 */
-	uint8_t order = fnzb32(((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) *
-	    sizeof(tsb_entry_t)) >> FRAME_WIDTH);
-	
-	uintptr_t tsb = PA2KA(frame_alloc(order, flags, 0));
+	size_t frames = SIZE2FRAMES((ITSB_ENTRY_COUNT + DTSB_ENTRY_COUNT) *
+	    sizeof(tsb_entry_t));
+	
+	uintptr_t tsb = PA2KA(frame_alloc(frames, flags, 0));
 	if (!tsb)
 		return -1;
 	
 	as->arch.itsb = (tsb_entry_t *) tsb;
-	as->arch.dtsb = (tsb_entry_t *) (tsb + ITSB_ENTRY_COUNT *
-	    sizeof(tsb_entry_t));
+	as->arch.dtsb = (tsb_entry_t *) (tsb +
+	    ITSB_ENTRY_COUNT * sizeof(tsb_entry_t));
 	
 	memsetb(as->arch.itsb,
Index: kernel/arch/sparc64/src/mm/sun4v/as.c
===================================================================
--- kernel/arch/sparc64/src/mm/sun4v/as.c	(revision e2a0d76262c824f700198bedc668eb60c9ab9cfa)
+++ kernel/arch/sparc64/src/mm/sun4v/as.c	(revision 08bc23d60e18d91f38bdbbfc8ee0bc0a7c796879)
@@ -66,8 +66,8 @@
 {
 #ifdef CONFIG_TSB
-	uint8_t order = fnzb32(
-		(TSB_ENTRY_COUNT * sizeof(tsb_entry_t)) >> FRAME_WIDTH);
+	size_t frames =
+	    SIZE2FRAMES(TSB_ENTRY_COUNT * sizeof(tsb_entry_t));
 	
-	uintptr_t tsb = frame_alloc(order, flags, 0);
+	uintptr_t tsb = frame_alloc(frames, flags, 0);
 	if (!tsb)
 		return -1;
