xref: /openbmc/linux/arch/arm/mm/hugetlbpage.c (revision 4b4193256c8d3bc3a5397b5cd9494c2ad386317d)
1*45051539SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
21355e2a6SCatalin Marinas /*
31355e2a6SCatalin Marinas  * arch/arm/mm/hugetlbpage.c
41355e2a6SCatalin Marinas  *
51355e2a6SCatalin Marinas  * Copyright (C) 2012 ARM Ltd.
61355e2a6SCatalin Marinas  *
71355e2a6SCatalin Marinas  * Based on arch/x86/include/asm/hugetlb.h and Bill Carson's patches
81355e2a6SCatalin Marinas  */
91355e2a6SCatalin Marinas 
101355e2a6SCatalin Marinas #include <linux/init.h>
111355e2a6SCatalin Marinas #include <linux/fs.h>
121355e2a6SCatalin Marinas #include <linux/mm.h>
131355e2a6SCatalin Marinas #include <linux/hugetlb.h>
141355e2a6SCatalin Marinas #include <linux/pagemap.h>
151355e2a6SCatalin Marinas #include <linux/err.h>
161355e2a6SCatalin Marinas #include <linux/sysctl.h>
171355e2a6SCatalin Marinas #include <asm/mman.h>
181355e2a6SCatalin Marinas #include <asm/tlb.h>
191355e2a6SCatalin Marinas #include <asm/tlbflush.h>
201355e2a6SCatalin Marinas 
211355e2a6SCatalin Marinas /*
221355e2a6SCatalin Marinas  * On ARM, huge pages are backed by pmd's rather than pte's, so we do a lot
231355e2a6SCatalin Marinas  * of type casting from pmd_t * to pte_t *.
241355e2a6SCatalin Marinas  */
251355e2a6SCatalin Marinas 
pud_huge(pud_t pud)261355e2a6SCatalin Marinas int pud_huge(pud_t pud)
271355e2a6SCatalin Marinas {
281355e2a6SCatalin Marinas 	return 0;
291355e2a6SCatalin Marinas }
301355e2a6SCatalin Marinas 
pmd_huge(pmd_t pmd)311355e2a6SCatalin Marinas int pmd_huge(pmd_t pmd)
321355e2a6SCatalin Marinas {
331355e2a6SCatalin Marinas 	return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT);
341355e2a6SCatalin Marinas }
35