1*45051539SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */ 21355e2a6SCatalin Marinas /* 31355e2a6SCatalin Marinas * arch/arm/include/asm/hugetlb-3level.h 41355e2a6SCatalin Marinas * 51355e2a6SCatalin Marinas * Copyright (C) 2012 ARM Ltd. 61355e2a6SCatalin Marinas * 71355e2a6SCatalin Marinas * Based on arch/x86/include/asm/hugetlb.h. 81355e2a6SCatalin Marinas */ 91355e2a6SCatalin Marinas 101355e2a6SCatalin Marinas #ifndef _ASM_ARM_HUGETLB_3LEVEL_H 111355e2a6SCatalin Marinas #define _ASM_ARM_HUGETLB_3LEVEL_H 121355e2a6SCatalin Marinas 131355e2a6SCatalin Marinas 141355e2a6SCatalin Marinas /* 151355e2a6SCatalin Marinas * If our huge pte is non-zero then mark the valid bit. 161355e2a6SCatalin Marinas * This allows pte_present(huge_ptep_get(ptep)) to return true for non-zero 171355e2a6SCatalin Marinas * ptes. 181355e2a6SCatalin Marinas * (The valid bit is automatically cleared by set_pte_at for PROT_NONE ptes). 191355e2a6SCatalin Marinas */ 20544db759SAlexandre Ghiti #define __HAVE_ARCH_HUGE_PTEP_GET huge_ptep_get(pte_t * ptep)211355e2a6SCatalin Marinasstatic inline pte_t huge_ptep_get(pte_t *ptep) 221355e2a6SCatalin Marinas { 231355e2a6SCatalin Marinas pte_t retval = *ptep; 241355e2a6SCatalin Marinas if (pte_val(retval)) 251355e2a6SCatalin Marinas pte_val(retval) |= L_PTE_VALID; 261355e2a6SCatalin Marinas return retval; 271355e2a6SCatalin Marinas } 281355e2a6SCatalin Marinas 291355e2a6SCatalin Marinas #endif /* _ASM_ARM_HUGETLB_3LEVEL_H */ 30