pte_t arch_make_huge_pte(pte_t entry, struct vm_area_struct *vma, struct page *page, int writeable) { unsigned int shift = huge_page_shift(hstate_vma(vma)); return hugepage_shift_to_tte(entry, shift); }
static inline pte_t *hugepte_offset(hugepd_t *hpdp, unsigned long addr, struct hstate *hstate) { unsigned int shift = huge_page_shift(hstate); int psize = shift_to_mmu_psize(shift); unsigned long idx = ((addr >> shift) & (PTRS_PER_HUGEPTE(psize)-1)); pte_t *dir = hugepd_page(*hpdp); return dir + idx; }