[PATCH v2 44/69] mm/sparse-vmemmap: Remove the unused ptpfn argument
From: Muchun Song
Date: Wed May 13 2026 - 10:33:32 EST
vmemmap_pte_populate() no longer uses ptpfn as an input. It computes
the PFN locally in both cases before building the PTE.
Drop the argument and inline the PFN computation at the PTE creation
sites.
Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>
---
mm/sparse-vmemmap.c | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
index 4833a2295abb..182d0c7dd1e7 100644
--- a/mm/sparse-vmemmap.c
+++ b/mm/sparse-vmemmap.c
@@ -124,8 +124,7 @@ void __meminit vmemmap_verify(pte_t *pte, int node,
}
static pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, int node,
- struct vmem_altmap *altmap,
- unsigned long ptpfn)
+ struct vmem_altmap *altmap)
{
pte_t entry, *pte = pte_offset_kernel(pmd, addr);
struct page *page = (struct page *)addr;
@@ -158,15 +157,15 @@ static pte_t * __meminit vmemmap_pte_populate(pmd_t *pmd, unsigned long addr, in
*/
if (slab_is_available())
get_page(page);
- ptpfn = page_to_pfn(page);
+
+ entry = pfn_pte(page_to_pfn(page), PAGE_KERNEL);
} else {
void *vaddr = vmemmap_alloc_block_buf(PAGE_SIZE, node, altmap);
if (!vaddr)
return NULL;
- ptpfn = PHYS_PFN(__pa(vaddr));
+ entry = pfn_pte(PHYS_PFN(__pa(vaddr)), PAGE_KERNEL);
}
- entry = pfn_pte(ptpfn, PAGE_KERNEL);
set_pte_at(&init_mm, addr, pte, entry);
return pte;
@@ -235,8 +234,7 @@ static pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
}
static pte_t * __meminit vmemmap_populate_address(unsigned long addr, int node,
- struct vmem_altmap *altmap,
- unsigned long ptpfn)
+ struct vmem_altmap *altmap)
{
pgd_t *pgd;
p4d_t *p4d;
@@ -256,7 +254,7 @@ static pte_t * __meminit vmemmap_populate_address(unsigned long addr, int node,
pmd = vmemmap_pmd_populate(pud, addr, node);
if (!pmd)
return NULL;
- pte = vmemmap_pte_populate(pmd, addr, node, altmap, ptpfn);
+ pte = vmemmap_pte_populate(pmd, addr, node, altmap);
if (!pte)
return NULL;
vmemmap_verify(pte, node, addr, addr + PAGE_SIZE);
@@ -268,7 +266,7 @@ int __meminit vmemmap_populate_basepages(unsigned long start, unsigned long end,
int node, struct vmem_altmap *altmap)
{
for (; start < end; start += PAGE_SIZE)
- if (!vmemmap_populate_address(start, node, altmap, -1))
+ if (!vmemmap_populate_address(start, node, altmap))
return -ENOMEM;
return 0;
--
2.54.0