[PATCH v3 04/10] drivers: nvdimm: use pgtable_has_pmd_leaves()

Luiz Capitulino
2026-04-08T20:26:06Z

nd_pfn_supported_alignments() and nd_pfn_default_alignment() use
has_transparent_hugepage() to check if THP is supported with PMD-sized
pages. Use pgtable_has_pmd_leaves() instead. Also, check for
IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) to preserve the current
implementation semantics.

Signed-off-by: Luiz Capitulino <luizcap@redhat.com>
---
drivers/nvdimm/pfn_devs.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c
index 8fa9c16aba7e..457eb54e7ab6 100644
--- a/drivers/nvdimm/pfn_devs.c
+++ b/drivers/nvdimm/pfn_devs.c
@@ -94,7 +94,8 @@ static unsigned long *nd_pfn_supported_alignments(unsigned long *alignments)

alignments[0] = PAGE_SIZE;

- if (has_transparent_hugepage()) {
+ if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
+ pgtable_has_pmd_leaves()) {
alignments[1] = HPAGE_PMD_SIZE;
if (has_transparent_pud_hugepage())
alignments[2] = HPAGE_PUD_SIZE;
@@ -109,7 +110,8 @@ static unsigned long *nd_pfn_supported_alignments(unsigned long *alignments)
static unsigned long nd_pfn_default_alignment(void)
{

- if (has_transparent_hugepage())
+ if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) &&
+ pgtable_has_pmd_leaves())
return HPAGE_PMD_SIZE;
return PAGE_SIZE;
}
--
2.53.0