1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * arch/arm/include/asm/hugetlb-3level.h
4  *
5  * Copyright (C) 2012 ARM Ltd.
6  *
7  * Based on arch/x86/include/asm/hugetlb.h.
8  */
9 
10 #ifndef _ASM_ARM_HUGETLB_3LEVEL_H
11 #define _ASM_ARM_HUGETLB_3LEVEL_H
12 
13 
14 /*
15  * If our huge pte is non-zero then mark the valid bit.
16  * This allows pte_present(huge_ptep_get(ptep)) to return true for non-zero
17  * ptes.
18  * (The valid bit is automatically cleared by set_pte_at for PROT_NONE ptes).
19  */
20 #define __HAVE_ARCH_HUGE_PTEP_GET
huge_ptep_get(pte_t * ptep)21 static inline pte_t huge_ptep_get(pte_t *ptep)
22 {
23 	pte_t retval = *ptep;
24 	if (pte_val(retval))
25 		pte_val(retval) |= L_PTE_VALID;
26 	return retval;
27 }
28 
29 #endif /* _ASM_ARM_HUGETLB_3LEVEL_H */
30