hugetlb-3level.h 690 B

1234567891011121314151617181920212223242526272829
  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. #ifndef _ASM_ARM_HUGETLB_3LEVEL_H
  10. #define _ASM_ARM_HUGETLB_3LEVEL_H
  11. /*
  12. * If our huge pte is non-zero then mark the valid bit.
  13. * This allows pte_present(huge_ptep_get(ptep)) to return true for non-zero
  14. * ptes.
  15. * (The valid bit is automatically cleared by set_pte_at for PROT_NONE ptes).
  16. */
  17. #define __HAVE_ARCH_HUGE_PTEP_GET
  18. static inline pte_t huge_ptep_get(pte_t *ptep)
  19. {
  20. pte_t retval = *ptep;
  21. if (pte_val(retval))
  22. pte_val(retval) |= L_PTE_VALID;
  23. return retval;
  24. }
  25. #endif /* _ASM_ARM_HUGETLB_3LEVEL_H */