mirror of
https://github.com/torvalds/linux.git
synced 2025-04-11 04:53:02 +00:00

On powerpc 8xx huge_ptep_get() will need to know whether the given ptep is a PTE entry or a PMD entry. This cannot be known with the PMD entry itself because there is no easy way to know it from the content of the entry. So huge_ptep_get() will need to know either the size of the page or get the pmd. In order to be consistent with huge_ptep_get_and_clear(), give mm and address to huge_ptep_get(). Link: https://lkml.kernel.org/r/cc00c70dd384298796a4e1b25d6c4eb306d3af85.1719928057.git.christophe.leroy@csgroup.eu Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu> Reviewed-by: Oscar Salvador <osalvador@suse.de> Cc: Jason Gunthorpe <jgg@nvidia.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Nicholas Piggin <npiggin@gmail.com> Cc: Peter Xu <peterx@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
30 lines
740 B
C
30 lines
740 B
C
/* SPDX-License-Identifier: GPL-2.0-only */
|
|
/*
|
|
* arch/arm/include/asm/hugetlb-3level.h
|
|
*
|
|
* Copyright (C) 2012 ARM Ltd.
|
|
*
|
|
* Based on arch/x86/include/asm/hugetlb.h.
|
|
*/
|
|
|
|
#ifndef _ASM_ARM_HUGETLB_3LEVEL_H
|
|
#define _ASM_ARM_HUGETLB_3LEVEL_H
|
|
|
|
|
|
/*
|
|
* If our huge pte is non-zero then mark the valid bit.
|
|
* This allows pte_present(huge_ptep_get(mm,addr,ptep)) to return true for non-zero
|
|
* ptes.
|
|
* (The valid bit is automatically cleared by set_pte_at for PROT_NONE ptes).
|
|
*/
|
|
#define __HAVE_ARCH_HUGE_PTEP_GET
|
|
static inline pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
|
|
{
|
|
pte_t retval = *ptep;
|
|
if (pte_val(retval))
|
|
pte_val(retval) |= L_PTE_VALID;
|
|
return retval;
|
|
}
|
|
|
|
#endif /* _ASM_ARM_HUGETLB_3LEVEL_H */
|