diff options
Diffstat (limited to 'arch/tile/include/asm/hugetlb.h')
| -rw-r--r-- | arch/tile/include/asm/hugetlb.h | 28 | 
1 files changed, 27 insertions, 1 deletions
diff --git a/arch/tile/include/asm/hugetlb.h b/arch/tile/include/asm/hugetlb.h index 0521c277bbd..3257733003f 100644 --- a/arch/tile/include/asm/hugetlb.h +++ b/arch/tile/include/asm/hugetlb.h @@ -16,6 +16,7 @@  #define _ASM_TILE_HUGETLB_H  #include <asm/page.h> +#include <asm-generic/hugetlb.h>  static inline int is_hugepage_only_range(struct mm_struct *mm, @@ -54,7 +55,7 @@ static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb,  static inline void set_huge_pte_at(struct mm_struct *mm, unsigned long addr,  				   pte_t *ptep, pte_t pte)  { -	set_pte_order(ptep, pte, HUGETLB_PAGE_ORDER); +	set_pte(ptep, pte);  }  static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, @@ -106,4 +107,29 @@ static inline void arch_release_hugepage(struct page *page)  {  } +static inline void arch_clear_hugepage_flags(struct page *page) +{ +} + +#ifdef CONFIG_HUGETLB_SUPER_PAGES +static inline pte_t arch_make_huge_pte(pte_t entry, struct vm_area_struct *vma, +				       struct page *page, int writable) +{ +	size_t pagesize = huge_page_size(hstate_vma(vma)); +	if (pagesize != PUD_SIZE && pagesize != PMD_SIZE) +		entry = pte_mksuper(entry); +	return entry; +} +#define arch_make_huge_pte arch_make_huge_pte + +/* Sizes to scale up page size for PTEs with HV_PTE_SUPER bit. */ +enum { +	HUGE_SHIFT_PGDIR = 0, +	HUGE_SHIFT_PMD = 1, +	HUGE_SHIFT_PAGE = 2, +	HUGE_SHIFT_ENTRIES +}; +extern int huge_shift[HUGE_SHIFT_ENTRIES]; +#endif +  #endif /* _ASM_TILE_HUGETLB_H */  | 
