[tip: x86/mm] x86/mm/pat: Convert pte code to use page table apis

From: tip-bot2 for Vishal Moola (Oracle)

Date: Wed Mar 04 2026 - 15:01:11 EST


The following commit has been merged into the x86/mm branch of tip:

Commit-ID: c22ca4a96300c8ed01fe2282d2dd9e9a75032379
Gitweb: https://git.kernel.org/tip/c22ca4a96300c8ed01fe2282d2dd9e9a75032379
Author: Vishal Moola (Oracle) <vishal.moola@xxxxxxxxx>
AuthorDate: Tue, 03 Mar 2026 11:48:24 -08:00
Committer: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
CommitterDate: Wed, 04 Mar 2026 10:08:54 -08:00

x86/mm/pat: Convert pte code to use page table apis

Use the ptdesc APIs for all page table allocation and free sites to allow
their separate allocation from struct page in the future. Convert the PTE
allocation and free sites to use the generic page table APIs, as they
already use ptdescs.

Pass through init_mm since these are kernel page tables; otherwise,
pte_alloc_one_kernel() becomes a no-op.

Signed-off-by: Vishal Moola (Oracle) <vishal.moola@xxxxxxxxx>
Signed-off-by: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>
Acked-by: Mike Rapoport (Microsoft) <rppt@xxxxxxxxxx>
Link: https://patch.msgid.link/20260303194828.1406905-2-vishal.moola@xxxxxxxxx
---
arch/x86/mm/pat/set_memory.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c
index 40581a7..a4b1b32 100644
--- a/arch/x86/mm/pat/set_memory.c
+++ b/arch/x86/mm/pat/set_memory.c
@@ -1408,7 +1408,7 @@ static bool try_to_free_pte_page(pte_t *pte)
if (!pte_none(pte[i]))
return false;

- free_page((unsigned long)pte);
+ pte_free_kernel(&init_mm, pte);
return true;
}

@@ -1539,7 +1539,7 @@ static void unmap_pud_range(p4d_t *p4d, unsigned long start, unsigned long end)

static int alloc_pte_page(pmd_t *pmd)
{
- pte_t *pte = (pte_t *)get_zeroed_page(GFP_KERNEL);
+ pte_t *pte = pte_alloc_one_kernel(&init_mm);
if (!pte)
return -1;