Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
powerpc: Fix address masking bug in hpte_need_flush()

+9 -3
+9 -3
arch/powerpc/mm/tlb_hash64.c
··· 63 63 if (huge) { 64 64 #ifdef CONFIG_HUGETLB_PAGE 65 65 psize = get_slice_psize(mm, addr); 66 + /* Mask the address for the correct page size */ 67 + addr &= ~((1UL << mmu_psize_defs[psize].shift) - 1); 66 68 #else 67 69 BUG(); 68 70 psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */ 69 71 #endif 70 - } else 72 + } else { 71 73 psize = pte_pagesize_index(mm, addr, pte); 74 + /* Mask the address for the standard page size. If we 75 + * have a 64k page kernel, but the hardware does not 76 + * support 64k pages, this might be different from the 77 + * hardware page size encoded in the slice table. */ 78 + addr &= PAGE_MASK; 79 + } 72 80 73 - /* Mask the address for the correct page size */ 74 - addr &= ~((1UL << mmu_psize_defs[psize].shift) - 1); 75 81 76 82 /* Build full vaddr */ 77 83 if (!is_kernel_addr(addr)) {