[PATCH v2 2/8] mm: rename pointers to software PTE values as ptentp
From: Muhammad Usama Anjum
Date: Thu Sep 03 2026 - 07:34:54 EST
Some interfaces use pte_t * for a software PTE value rather than for an
entry stored in a PTE table. These pointers must remain pte_t * when
pointers to PTE table storage are converted to hw_pte_t *.
Rename these parameters in the install_pte callback,
write_protect_page(), and guard_install_set_pte() to ptentp. The later
Coccinelle conversion skips pointers named ptentp, allowing it to convert
the remaining PTE table pointers without changing these interfaces.
Some functions already use ptentp for such pointers, including:
- madvise_folio_pte_batch()
- folio_pte_batch_flags()
No need to rename them.
This patch only renames parameters and makes no functional change.
Signed-off-by: Muhammad Usama Anjum <usama.anjum@xxxxxxx>
---
Changes since v1:
- Rewrite the subject and description to distinguish software PTE
values from PTE table storage.
Changes since RFC v1:
- Update the description for the architecture opt-in conversion.
---
include/linux/pagewalk.h | 2 +-
mm/ksm.c | 4 ++--
mm/madvise.c | 4 ++--
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/include/linux/pagewalk.h b/include/linux/pagewalk.h
index b41d7265c01bc..c34d826c5e4a2 100644
--- a/include/linux/pagewalk.h
+++ b/include/linux/pagewalk.h
@@ -89,7 +89,7 @@ struct mm_walk_ops {
struct mm_walk *walk);
void (*post_vma)(struct mm_walk *walk);
int (*install_pte)(unsigned long addr, unsigned long next,
- pte_t *ptep, struct mm_walk *walk);
+ pte_t *ptentp, struct mm_walk *walk);
enum page_walk_lock walk_lock;
};
diff --git a/mm/ksm.c b/mm/ksm.c
index 624f37975e129..2a4f19fe0f696 100644
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -1292,7 +1292,7 @@ static u32 calc_checksum(struct page *page)
}
static int write_protect_page(struct vm_area_struct *vma, struct folio *folio,
- pte_t *orig_pte)
+ pte_t *ptentp)
{
struct mm_struct *mm = vma->vm_mm;
DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, 0, 0);
@@ -1371,7 +1371,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct folio *folio,
set_pte_at(mm, pvmw.address, pvmw.pte, entry);
}
- *orig_pte = entry;
+ *ptentp = entry;
err = 0;
out_unlock:
diff --git a/mm/madvise.c b/mm/madvise.c
index 73c2901b9adbf..dd75a673e108f 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -1113,12 +1113,12 @@ static int guard_install_pte_entry(pte_t *pte, unsigned long addr,
}
static int guard_install_set_pte(unsigned long addr, unsigned long next,
- pte_t *ptep, struct mm_walk *walk)
+ pte_t *ptentp, struct mm_walk *walk)
{
unsigned long *nr_pages = (unsigned long *)walk->private;
/* Simply install a PTE marker, this causes segfault on access. */
- *ptep = make_pte_marker(PTE_MARKER_GUARD);
+ *ptentp = make_pte_marker(PTE_MARKER_GUARD);
(*nr_pages)++;
return 0;
--
2.47.3