>From 81719b31a4e86d2f7352da653175b7c508a94303 Mon Sep 17 00:00:00 2001
From: "Aneesh Kumar K.V" <aneesh.ku...@linux.ibm.com>
Date: Wed, 26 Jul 2023 13:45:28 +0530
Subject: [PATCH] mm/debug_vm_pgtable: Use the new
 has_transparent_pud_hugepage()

Use the new helper to check pud hugepage support. Architecture like ppc64
will enable the config value CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
and can still have pud hugepage support disabled for hash translation.

Signed-off-by: Aneesh Kumar K.V <aneesh.ku...@linux.ibm.com>
---
 mm/debug_vm_pgtable.c | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c
index ee2c4c1dcfc8..d61eaa075c75 100644
--- a/mm/debug_vm_pgtable.c
+++ b/mm/debug_vm_pgtable.c
@@ -302,7 +302,7 @@ static void __init pud_basic_tests(struct 
pgtable_debug_args *args, int idx)
        unsigned long val = idx, *ptr = &val;
        pud_t pud;
 
-       if (!has_transparent_hugepage())
+       if (!has_transparent_pud_hugepage())
                return;
 
        pr_debug("Validating PUD basic (%pGv)\n", ptr);
@@ -343,7 +343,7 @@ static void __init pud_advanced_tests(struct 
pgtable_debug_args *args)
        unsigned long vaddr = args->vaddr;
        pud_t pud;
 
-       if (!has_transparent_hugepage())
+       if (!has_transparent_pud_hugepage())
                return;
 
        page = (args->pud_pfn != ULONG_MAX) ? pfn_to_page(args->pud_pfn) : NULL;
@@ -405,7 +405,7 @@ static void __init pud_leaf_tests(struct pgtable_debug_args 
*args)
 {
        pud_t pud;
 
-       if (!has_transparent_hugepage())
+       if (!has_transparent_pud_hugepage())
                return;
 
        pr_debug("Validating PUD leaf\n");
@@ -732,7 +732,7 @@ static void __init pud_devmap_tests(struct 
pgtable_debug_args *args)
 {
        pud_t pud;
 
-       if (!has_transparent_hugepage())
+       if (!has_transparent_pud_hugepage())
                return;
 
        pr_debug("Validating PUD devmap\n");
@@ -981,7 +981,7 @@ static void __init pud_thp_tests(struct pgtable_debug_args 
*args)
 {
        pud_t pud;
 
-       if (!has_transparent_hugepage())
+       if (!has_transparent_pud_hugepage())
                return;
 
        pr_debug("Validating PUD based THP\n");
@@ -1022,8 +1022,7 @@ static void __init destroy_args(struct pgtable_debug_args 
*args)
 
        /* Free (huge) page */
        if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
-           IS_ENABLED(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) &&
-           has_transparent_hugepage() &&
+           has_transparent_pud_hugepage() &&
            args->pud_pfn != ULONG_MAX) {
                if (args->is_contiguous_page) {
                        free_contig_range(args->pud_pfn,
@@ -1274,8 +1273,7 @@ static int __init init_args(struct pgtable_debug_args 
*args)
         * if we fail to allocate (huge) pages.
         */
        if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
-           IS_ENABLED(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) &&
-           has_transparent_hugepage()) {
+           has_transparent_pud_hugepage()) {
                page = debug_vm_pgtable_alloc_huge_page(args,
                                HPAGE_PUD_SHIFT - PAGE_SHIFT);
                if (page) {
-- 
2.41.0

Reply via email to