[PATCH] powerpc/mm: remove radix-specific vmemmap PMD overrides

Muchun Song <[email protected]>
Newsgroups gmane.linux.ports.ppc.embedded
Message-ID <20260806100431.507837-1-songmuchun__736.777151335843$1786010698$gmane$org@bytedance.com>
PowerPC radix vmemmap population has private implementations of
vmemmap_set_pmd() and vmemmap_check_pmd() that duplicate the generic
helpers in mm/sparse-vmemmap.c.

Remove the radix-specific overrides so the common helpers are used
instead. Since commit 4edd70ee6a7d ("mm/sparse-vmemmap:
flush_cache_vmap() after hotplugging vmemmap"), the generic sparse
vmemmap code calls flush_cache_vmap() after vmemmap population. On
PowerPC, that provides the necessary ptesync.

Signed-off-by: Muchun Song <[email protected]>
---
 arch/powerpc/mm/book3s64/radix_pgtable.c | 26 ------------------------
 1 file changed, 26 deletions(-)

diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c
index cf692b2b5f7b..08ab371e4722 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -987,31 +987,6 @@ bool vmemmap_can_optimize(struct vmem_altmap *altmap, struct dev_pagemap *pgmap)
 }
 #endif
 
-int __meminit vmemmap_check_pmd(pmd_t *pmdp, int node,
-				unsigned long addr, unsigned long next)
-{
-	int large = pmd_leaf(*pmdp);
-
-	if (large)
-		vmemmap_verify(pmdp_ptep(pmdp), node, addr, next);
-
-	return large;
-}
-
-void __meminit vmemmap_set_pmd(pmd_t *pmdp, void *p, int node,
-			       unsigned long addr, unsigned long next)
-{
-	pte_t entry;
-	pte_t *ptep = pmdp_ptep(pmdp);
-
-	VM_BUG_ON(!IS_ALIGNED(addr, PMD_SIZE));
-	entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL);
-	set_pte_at(&init_mm, addr, ptep, entry);
-	asm volatile("ptesync": : :"memory");
-
-	vmemmap_verify(ptep, node, addr, next);
-}
-
 static pte_t * __meminit radix__vmemmap_pte_populate(pmd_t *pmdp, unsigned long addr,
 						     int node,
 						     struct vmem_altmap *altmap,
@@ -1055,7 +1030,6 @@ static pte_t * __meminit radix__vmemmap_pte_populate(pmd_t *pmdp, unsigned long
 		VM_BUG_ON(!PAGE_ALIGNED(addr));
 		entry = pfn_pte(__pa(p) >> PAGE_SHIFT, PAGE_KERNEL);
 		set_pte_at(&init_mm, addr, pte, entry);
-		asm volatile("ptesync": : :"memory");
 	}
 	return pte;
 }

base-commit: 9a4cdc958dd79fc6c3b20b51a10debec6ca09fec
-- 
2.54.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.