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