Linux-libre 5.4.39-gnu
[librecmc/linux-libre.git] / arch / arm / include / asm / hugetlb-3level.h
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
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 */