return shift_to_mmu_psize(shift);
 }
 
+static inline pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags)
+{
+       unsigned int tsize = shift - _PAGE_PSIZE_SHIFT_OFFSET;
+       pte_basic_t val = (tsize << _PAGE_PSIZE_SHIFT) & _PAGE_PSIZE_MSK;
+
+       return __pte((pte_val(entry) & ~(pte_basic_t)_PAGE_PSIZE_MSK) | val);
+}
+#define arch_make_huge_pte arch_make_huge_pte
+
 #endif /* _ASM_POWERPC_NOHASH_HUGETLB_E500_H */
 
 #define _PAGE_BAP_SX   0x000040
 #define _PAGE_BAP_UX   0x000080
 #define _PAGE_PSIZE_MSK        0x000f00
-#define _PAGE_PSIZE_4K 0x000200
-#define _PAGE_PSIZE_8K 0x000300
-#define _PAGE_PSIZE_16K        0x000400
-#define _PAGE_PSIZE_32K        0x000500
-#define _PAGE_PSIZE_64K        0x000600
-#define _PAGE_PSIZE_128K       0x000700
-#define _PAGE_PSIZE_256K       0x000800
-#define _PAGE_PSIZE_512K       0x000900
-#define _PAGE_PSIZE_1M 0x000a00
-#define _PAGE_PSIZE_2M 0x000b00
-#define _PAGE_PSIZE_4M 0x000c00
-#define _PAGE_PSIZE_8M 0x000d00
-#define _PAGE_PSIZE_16M        0x000e00
-#define _PAGE_PSIZE_32M        0x000f00
+#define _PAGE_TSIZE_4K 0x000100
 #define _PAGE_DIRTY    0x001000 /* C: page changed */
 #define _PAGE_SW0      0x002000
 #define _PAGE_U3       0x004000
 #define _PAGE_NO_CACHE 0x400000 /* I: cache inhibit */
 #define _PAGE_WRITETHRU        0x800000 /* W: cache write-through */
 
+#define _PAGE_PSIZE_SHIFT              7
+#define _PAGE_PSIZE_SHIFT_OFFSET       10
+
 /* "Higher level" linux bit combinations */
 #define _PAGE_EXEC             (_PAGE_BAP_SX | _PAGE_BAP_UX) /* .. and was cache cleaned */
 #define _PAGE_READ             (_PAGE_BAP_SR | _PAGE_BAP_UR) /* User read permission */
  * pages. We always set _PAGE_COHERENT when SMP is enabled or
  * the processor might need it for DMA coherency.
  */
-#define _PAGE_BASE_NC  (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_PSIZE_4K)
+#define _PAGE_BASE_NC  (_PAGE_PRESENT | _PAGE_ACCESSED | _PAGE_TSIZE_4K)
 #if defined(CONFIG_SMP)
 #define _PAGE_BASE     (_PAGE_BASE_NC | _PAGE_COHERENT)
 #else
 }
 #define pte_mkexec pte_mkexec
 
+static inline unsigned long pte_huge_size(pte_t pte)
+{
+       pte_basic_t val = pte_val(pte);
+
+       return 1UL << (((val & _PAGE_PSIZE_MSK) >> _PAGE_PSIZE_SHIFT) + _PAGE_PSIZE_SHIFT_OFFSET);
+}
+#define pte_huge_size pte_huge_size
+
 #endif /* __ASSEMBLY__ */
 
 #endif /* __KERNEL__ */