--- v3
+++ v1
@@ -1,40 +1,23 @@
-Architectures like powerpc would like to enable transparent huge page pud
-support only with radix translation. To support that add
-has_transparent_pud_hugepage() helper that architectures can override.
+No functional change in this patch.
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
---
- drivers/nvdimm/pfn_devs.c | 2 +-
- include/linux/pgtable.h | 3 +++
- 2 files changed, 4 insertions(+), 1 deletion(-)
+ arch/powerpc/mm/book3s64/radix_pgtable.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/drivers/nvdimm/pfn_devs.c b/drivers/nvdimm/pfn_devs.c
-index af7d9301520c..18ad315581ca 100644
---- a/drivers/nvdimm/pfn_devs.c
-+++ b/drivers/nvdimm/pfn_devs.c
-@@ -100,7 +100,7 @@ static unsigned long *nd_pfn_supported_alignments(unsigned long *alignments)
-
- if (has_transparent_hugepage()) {
- alignments[1] = HPAGE_PMD_SIZE;
-- if (IS_ENABLED(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD))
-+ if (has_transparent_pud_hugepage())
- alignments[2] = HPAGE_PUD_SIZE;
- }
-
-diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h
-index 5063b482e34f..cf13f8d938a8 100644
---- a/include/linux/pgtable.h
-+++ b/include/linux/pgtable.h
-@@ -1499,6 +1499,9 @@ typedef unsigned int pgtbl_mod_mask;
- #define has_transparent_hugepage() IS_BUILTIN(CONFIG_TRANSPARENT_HUGEPAGE)
+diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
+index 2297aa764ecd..5f8c6fbe8a69 100644
+--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
++++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
+@@ -952,7 +952,7 @@ unsigned long radix__pmd_hugepage_update(struct mm_struct *mm, unsigned long add
+ assert_spin_locked(pmd_lockptr(mm, pmdp));
#endif
-+#ifndef has_transparent_pud_hugepage
-+#define has_transparent_pud_hugepage() IS_BUILTIN(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD)
-+#endif
- /*
- * On some architectures it depends on the mm if the p4d/pud or pmd
- * layer of the page table hierarchy is folded or not.
+- old = radix__pte_update(mm, addr, (pte_t *)pmdp, clr, set, 1);
++ old = radix__pte_update(mm, addr, pmdp_ptep(pmdp), clr, set, 1);
+ trace_hugepage_update(addr, old, clr, set);
+
+ return old;
--
-2.41.0
+2.40.1