diff options
Diffstat (limited to 'arch/tile/include/asm/hugetlb.h')
-rw-r--r-- | arch/tile/include/asm/hugetlb.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/arch/tile/include/asm/hugetlb.h b/arch/tile/include/asm/hugetlb.h index d396d1805163..b2042380a5aa 100644 --- a/arch/tile/include/asm/hugetlb.h +++ b/arch/tile/include/asm/hugetlb.h | |||
@@ -106,4 +106,25 @@ static inline void arch_release_hugepage(struct page *page) | |||
106 | { | 106 | { |
107 | } | 107 | } |
108 | 108 | ||
109 | #ifdef CONFIG_HUGETLB_SUPER_PAGES | ||
110 | static inline pte_t arch_make_huge_pte(pte_t entry, struct vm_area_struct *vma, | ||
111 | struct page *page, int writable) | ||
112 | { | ||
113 | size_t pagesize = huge_page_size(hstate_vma(vma)); | ||
114 | if (pagesize != PUD_SIZE && pagesize != PMD_SIZE) | ||
115 | entry = pte_mksuper(entry); | ||
116 | return entry; | ||
117 | } | ||
118 | #define arch_make_huge_pte arch_make_huge_pte | ||
119 | |||
120 | /* Sizes to scale up page size for PTEs with HV_PTE_SUPER bit. */ | ||
121 | enum { | ||
122 | HUGE_SHIFT_PGDIR = 0, | ||
123 | HUGE_SHIFT_PMD = 1, | ||
124 | HUGE_SHIFT_PAGE = 2, | ||
125 | HUGE_SHIFT_ENTRIES | ||
126 | }; | ||
127 | extern int huge_shift[HUGE_SHIFT_ENTRIES]; | ||
128 | #endif | ||
129 | |||
109 | #endif /* _ASM_TILE_HUGETLB_H */ | 130 | #endif /* _ASM_TILE_HUGETLB_H */ |