Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

[PATCH] powerpc: Fix 64k pages on non-partitioned machines

The page size encoding passed to tlbie is incorrect for new-style
large pages. This fixes it. This doesn't affect anything on older
machines because mmu_psize_defs[psize].penc (the page size encoding)
is 0 for 4k and 16M pages (the two are distinguished by a separate "is
a large page" bit).

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Arnd Bergmann and committed by
Linus Torvalds
19242b24 f53ae1dc

+2 -2
+2 -2
arch/powerpc/mm/hash_native_64.c
··· 52 52 default: 53 53 penc = mmu_psize_defs[psize].penc; 54 54 va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); 55 - va |= (0x7f >> (8 - penc)) << 12; 55 + va |= penc << 12; 56 56 asm volatile("tlbie %0,1" : : "r" (va) : "memory"); 57 57 break; 58 58 } ··· 74 74 default: 75 75 penc = mmu_psize_defs[psize].penc; 76 76 va &= ~((1ul << mmu_psize_defs[psize].shift) - 1); 77 - va |= (0x7f >> (8 - penc)) << 12; 77 + va |= penc << 12; 78 78 asm volatile(".long 0x7c000224 | (%0 << 11) | (1 << 21)" 79 79 : : "r"(va) : "memory"); 80 80 break;