18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-only 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * arch/arm/mm/hugetlbpage.c 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2012 ARM Ltd. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * Based on arch/x86/include/asm/hugetlb.h and Bill Carson's patches 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci 108c2ecf20Sopenharmony_ci#include <linux/init.h> 118c2ecf20Sopenharmony_ci#include <linux/fs.h> 128c2ecf20Sopenharmony_ci#include <linux/mm.h> 138c2ecf20Sopenharmony_ci#include <linux/hugetlb.h> 148c2ecf20Sopenharmony_ci#include <linux/pagemap.h> 158c2ecf20Sopenharmony_ci#include <linux/err.h> 168c2ecf20Sopenharmony_ci#include <linux/sysctl.h> 178c2ecf20Sopenharmony_ci#include <asm/mman.h> 188c2ecf20Sopenharmony_ci#include <asm/tlb.h> 198c2ecf20Sopenharmony_ci#include <asm/tlbflush.h> 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci/* 228c2ecf20Sopenharmony_ci * On ARM, huge pages are backed by pmd's rather than pte's, so we do a lot 238c2ecf20Sopenharmony_ci * of type casting from pmd_t * to pte_t *. 248c2ecf20Sopenharmony_ci */ 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ciint pud_huge(pud_t pud) 278c2ecf20Sopenharmony_ci{ 288c2ecf20Sopenharmony_ci return 0; 298c2ecf20Sopenharmony_ci} 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ciint pmd_huge(pmd_t pmd) 328c2ecf20Sopenharmony_ci{ 338c2ecf20Sopenharmony_ci return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); 348c2ecf20Sopenharmony_ci} 35