Commit 1965e933 authored by Peter Xu's avatar Peter Xu Committed by Andrew Morton

mm/treewide: replace pXd_huge() with pXd_leaf()

Now after we're sure all pXd_huge() definitions are the same as pXd_leaf(),
reuse it.  Luckily, pXd_huge() isn't widely used.

Link: https://lkml.kernel.org/r/20240318200404.448346-12-peterx@redhat.comSigned-off-by: default avatarPeter Xu <peterx@redhat.com>
Cc: Alistair Popple <apopple@nvidia.com>
Cc: Andreas Larsson <andreas@gaisler.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Bjorn Andersson <andersson@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: David S. Miller <davem@davemloft.net>
Cc: Fabio Estevam <festevam@denx.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Jason Gunthorpe <jgg@nvidia.com>
Cc: Konrad Dybcio <konrad.dybcio@linaro.org>
Cc: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Cc: Lucas Stach <l.stach@pengutronix.de>
Cc: Mark Salter <msalter@redhat.com>
Cc: "Matthew Wilcox (Oracle)" <willy@infradead.org>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Mike Rapoport (IBM) <rppt@kernel.org>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Naoya Horiguchi <nao.horiguchi@gmail.com>
Cc: "Naveen N. Rao" <naveen.n.rao@linux.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 7db86dc3
...@@ -190,7 +190,7 @@ static inline pte_t pte_mkspecial(pte_t pte) ...@@ -190,7 +190,7 @@ static inline pte_t pte_mkspecial(pte_t pte)
#define pmd_dirty(pmd) (pmd_isset((pmd), L_PMD_SECT_DIRTY)) #define pmd_dirty(pmd) (pmd_isset((pmd), L_PMD_SECT_DIRTY))
#define pmd_hugewillfault(pmd) (!pmd_young(pmd) || !pmd_write(pmd)) #define pmd_hugewillfault(pmd) (!pmd_young(pmd) || !pmd_write(pmd))
#define pmd_thp_or_huge(pmd) (pmd_huge(pmd) || pmd_trans_huge(pmd)) #define pmd_thp_or_huge(pmd) (pmd_leaf(pmd) || pmd_trans_huge(pmd))
#ifdef CONFIG_TRANSPARENT_HUGEPAGE #ifdef CONFIG_TRANSPARENT_HUGEPAGE
#define pmd_trans_huge(pmd) (pmd_val(pmd) && !pmd_table(pmd)) #define pmd_trans_huge(pmd) (pmd_val(pmd) && !pmd_table(pmd))
......
...@@ -517,7 +517,7 @@ static inline pmd_t pmd_mkinvalid(pmd_t pmd) ...@@ -517,7 +517,7 @@ static inline pmd_t pmd_mkinvalid(pmd_t pmd)
return pmd; return pmd;
} }
#define pmd_thp_or_huge(pmd) (pmd_huge(pmd) || pmd_trans_huge(pmd)) #define pmd_thp_or_huge(pmd) (pmd_leaf(pmd) || pmd_trans_huge(pmd))
#define pmd_write(pmd) pte_write(pmd_pte(pmd)) #define pmd_write(pmd) pte_write(pmd_pte(pmd))
......
...@@ -321,7 +321,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm, ...@@ -321,7 +321,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm,
if (sz != PUD_SIZE && pud_none(pud)) if (sz != PUD_SIZE && pud_none(pud))
return NULL; return NULL;
/* hugepage or swap? */ /* hugepage or swap? */
if (pud_huge(pud) || !pud_present(pud)) if (pud_leaf(pud) || !pud_present(pud))
return (pte_t *)pudp; return (pte_t *)pudp;
/* table; check the next level */ /* table; check the next level */
...@@ -333,7 +333,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm, ...@@ -333,7 +333,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm,
if (!(sz == PMD_SIZE || sz == CONT_PMD_SIZE) && if (!(sz == PMD_SIZE || sz == CONT_PMD_SIZE) &&
pmd_none(pmd)) pmd_none(pmd))
return NULL; return NULL;
if (pmd_huge(pmd) || !pmd_present(pmd)) if (pmd_leaf(pmd) || !pmd_present(pmd))
return (pte_t *)pmdp; return (pte_t *)pmdp;
if (sz == CONT_PTE_SIZE) if (sz == CONT_PTE_SIZE)
......
...@@ -64,7 +64,7 @@ uint64_t pmd_to_entrylo(unsigned long pmd_val) ...@@ -64,7 +64,7 @@ uint64_t pmd_to_entrylo(unsigned long pmd_val)
{ {
uint64_t val; uint64_t val;
/* PMD as PTE. Must be huge page */ /* PMD as PTE. Must be huge page */
if (!pmd_huge(__pmd(pmd_val))) if (!pmd_leaf(__pmd(pmd_val)))
panic("%s", __func__); panic("%s", __func__);
val = pmd_val ^ _PAGE_HUGE; val = pmd_val ^ _PAGE_HUGE;
......
...@@ -326,7 +326,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte) ...@@ -326,7 +326,7 @@ void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte)
idx = read_c0_index(); idx = read_c0_index();
#ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT #ifdef CONFIG_MIPS_HUGE_TLB_SUPPORT
/* this could be a huge page */ /* this could be a huge page */
if (pmd_huge(*pmdp)) { if (pmd_leaf(*pmdp)) {
unsigned long lo; unsigned long lo;
write_c0_pagemask(PM_HUGE_MASK); write_c0_pagemask(PM_HUGE_MASK);
ptep = (pte_t *)pmdp; ptep = (pte_t *)pmdp;
......
...@@ -102,7 +102,7 @@ struct page *p4d_page(p4d_t p4d) ...@@ -102,7 +102,7 @@ struct page *p4d_page(p4d_t p4d)
{ {
if (p4d_leaf(p4d)) { if (p4d_leaf(p4d)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP)) if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!p4d_huge(p4d)); VM_WARN_ON(!p4d_leaf(p4d));
return pte_page(p4d_pte(p4d)); return pte_page(p4d_pte(p4d));
} }
return virt_to_page(p4d_pgtable(p4d)); return virt_to_page(p4d_pgtable(p4d));
...@@ -113,7 +113,7 @@ struct page *pud_page(pud_t pud) ...@@ -113,7 +113,7 @@ struct page *pud_page(pud_t pud)
{ {
if (pud_leaf(pud)) { if (pud_leaf(pud)) {
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP)) if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!pud_huge(pud)); VM_WARN_ON(!pud_leaf(pud));
return pte_page(pud_pte(pud)); return pte_page(pud_pte(pud));
} }
return virt_to_page(pud_pgtable(pud)); return virt_to_page(pud_pgtable(pud));
...@@ -132,7 +132,7 @@ struct page *pmd_page(pmd_t pmd) ...@@ -132,7 +132,7 @@ struct page *pmd_page(pmd_t pmd)
* enabled so these checks can't be used. * enabled so these checks can't be used.
*/ */
if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP)) if (!IS_ENABLED(CONFIG_HAVE_ARCH_HUGE_VMAP))
VM_WARN_ON(!(pmd_leaf(pmd) || pmd_huge(pmd))); VM_WARN_ON(!pmd_leaf(pmd));
return pte_page(pmd_pte(pmd)); return pte_page(pmd_pte(pmd));
} }
return virt_to_page(pmd_page_vaddr(pmd)); return virt_to_page(pmd_page_vaddr(pmd));
......
...@@ -731,7 +731,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot) ...@@ -731,7 +731,7 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
return 0; return 0;
/* Bail out if we are we on a populated non-leaf entry: */ /* Bail out if we are we on a populated non-leaf entry: */
if (pud_present(*pud) && !pud_huge(*pud)) if (pud_present(*pud) && !pud_leaf(*pud))
return 0; return 0;
set_pte((pte_t *)pud, pfn_pte( set_pte((pte_t *)pud, pfn_pte(
...@@ -760,7 +760,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot) ...@@ -760,7 +760,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
} }
/* Bail out if we are we on a populated non-leaf entry: */ /* Bail out if we are we on a populated non-leaf entry: */
if (pmd_present(*pmd) && !pmd_huge(*pmd)) if (pmd_present(*pmd) && !pmd_leaf(*pmd))
return 0; return 0;
set_pte((pte_t *)pmd, pfn_pte( set_pte((pte_t *)pmd, pfn_pte(
......
...@@ -778,7 +778,7 @@ static struct page *follow_p4d_mask(struct vm_area_struct *vma, ...@@ -778,7 +778,7 @@ static struct page *follow_p4d_mask(struct vm_area_struct *vma,
p4d = READ_ONCE(*p4dp); p4d = READ_ONCE(*p4dp);
if (!p4d_present(p4d)) if (!p4d_present(p4d))
return no_page_table(vma, flags); return no_page_table(vma, flags);
BUILD_BUG_ON(p4d_huge(p4d)); BUILD_BUG_ON(p4d_leaf(p4d));
if (unlikely(p4d_bad(p4d))) if (unlikely(p4d_bad(p4d)))
return no_page_table(vma, flags); return no_page_table(vma, flags);
...@@ -3082,7 +3082,7 @@ static int gup_p4d_range(pgd_t *pgdp, pgd_t pgd, unsigned long addr, unsigned lo ...@@ -3082,7 +3082,7 @@ static int gup_p4d_range(pgd_t *pgdp, pgd_t pgd, unsigned long addr, unsigned lo
next = p4d_addr_end(addr, end); next = p4d_addr_end(addr, end);
if (!p4d_present(p4d)) if (!p4d_present(p4d))
return 0; return 0;
BUILD_BUG_ON(p4d_huge(p4d)); BUILD_BUG_ON(p4d_leaf(p4d));
if (unlikely(is_hugepd(__hugepd(p4d_val(p4d))))) { if (unlikely(is_hugepd(__hugepd(p4d_val(p4d))))) {
if (!gup_huge_pd(__hugepd(p4d_val(p4d)), addr, if (!gup_huge_pd(__hugepd(p4d_val(p4d)), addr,
P4D_SHIFT, next, flags, pages, nr)) P4D_SHIFT, next, flags, pages, nr))
......
...@@ -429,7 +429,7 @@ static int hmm_vma_walk_pud(pud_t *pudp, unsigned long start, unsigned long end, ...@@ -429,7 +429,7 @@ static int hmm_vma_walk_pud(pud_t *pudp, unsigned long start, unsigned long end,
return hmm_vma_walk_hole(start, end, -1, walk); return hmm_vma_walk_hole(start, end, -1, walk);
} }
if (pud_huge(pud) && pud_devmap(pud)) { if (pud_leaf(pud) && pud_devmap(pud)) {
unsigned long i, npages, pfn; unsigned long i, npages, pfn;
unsigned int required_fault; unsigned int required_fault;
unsigned long *hmm_pfns; unsigned long *hmm_pfns;
......
...@@ -2765,7 +2765,7 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud, ...@@ -2765,7 +2765,7 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
unsigned long next; unsigned long next;
int err = 0; int err = 0;
BUG_ON(pud_huge(*pud)); BUG_ON(pud_leaf(*pud));
if (create) { if (create) {
pmd = pmd_alloc_track(mm, pud, addr, mask); pmd = pmd_alloc_track(mm, pud, addr, mask);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment