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 Marinasint pud_huge(pud_t pud) 271355e2a6SCatalin Marinas { 281355e2a6SCatalin Marinas return 0; 291355e2a6SCatalin Marinas } 301355e2a6SCatalin Marinas pmd_huge(pmd_t pmd)311355e2a6SCatalin Marinasint pmd_huge(pmd_t pmd) 321355e2a6SCatalin Marinas { 331355e2a6SCatalin Marinas return pmd_val(pmd) && !(pmd_val(pmd) & PMD_TABLE_BIT); 341355e2a6SCatalin Marinas } 35