From: Benjamin Herrenschmidt The page size encoding passed to tlbie is incorrect for new-style large pages. This fixes it. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Arnd Bergmann --- Index: linus-2.6/arch/powerpc/mm/hash_native_64.c =================================================================== --- linus-2.6.orig/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:47:55.000000000 +0200 +++ linus-2.6/arch/powerpc/mm/hash_native_64.c 2006-04-29 22:53:42.000000000 +0200 @@ -52,7 +52,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile("tlbie %0,1" : : "r" (va) : "memory"); break; } @@ -74,7 +74,7 @@ default: penc = mmu_psize_defs[psize].penc; va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); - va |= (0x7f >> (8 - penc)) << 12; + va |= penc << 12; asm volatile(".long 0x7c000224 | (%0 << 11) | (1 << 21)" : : "r"(va) : "memory"); break; --