Index: arch/ppc32/include/mm/page.h
===================================================================
--- arch/ppc32/include/mm/page.h	(revision 9a68b34d997aee7a6bb46e96ef6da51cb260bcaf)
+++ arch/ppc32/include/mm/page.h	(revision 7dd1787643001828803b90e39bfe964bead011fa)
@@ -68,6 +68,4 @@
 #define PTL3_INDEX_ARCH(vaddr)	(((vaddr) >> 12) & 0x3ff)
 
-#define SET_PTL0_ADDRESS_ARCH(ptl0)
-
 #define GET_PTL1_ADDRESS_ARCH(ptl0, i)		(((pte_t *) (ptl0))[(i)].pfn << 12)
 #define GET_PTL2_ADDRESS_ARCH(ptl1, i)		(ptl1)
@@ -75,4 +73,5 @@
 #define GET_FRAME_ADDRESS_ARCH(ptl3, i)		(((pte_t *) (ptl3))[(i)].pfn << 12)
 
+#define SET_PTL0_ADDRESS_ARCH(ptl0)
 #define SET_PTL1_ADDRESS_ARCH(ptl0, i, a)	(((pte_t *) (ptl0))[(i)].pfn = (a) >> 12)
 #define SET_PTL2_ADDRESS_ARCH(ptl1, i, a)
Index: arch/ppc32/src/mm/tlb.c
===================================================================
--- arch/ppc32/src/mm/tlb.c	(revision 9a68b34d997aee7a6bb46e96ef6da51cb260bcaf)
+++ arch/ppc32/src/mm/tlb.c	(revision 7dd1787643001828803b90e39bfe964bead011fa)
@@ -162,10 +162,10 @@
 	pte->a = 1;
 	
-	page = ADDR2PFN(badvaddr);
+	page = (badvaddr >> 12) & 0xffff;
 	api = (badvaddr >> 22) & 0x3f;
 	asm volatile (
 		"mfsrin %0, %1\n"
 		: "=r" (vsid)
-		: "r" (badvaddr >> 28)
+		: "r" (badvaddr)
 	);
 	
