From: Vishal Moola (Oracle) Date: Tue, 3 Mar 2026 19:48:24 +0000 (-0800) Subject: x86/mm/pat: Convert pte code to use page table apis X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=c22ca4a96300c8ed01fe2282d2dd9e9a75032379;p=thirdparty%2Fkernel%2Flinux.git 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) Signed-off-by: Dave Hansen Acked-by: Mike Rapoport (Microsoft) Link: https://patch.msgid.link/20260303194828.1406905-2-vishal.moola@gmail.com --- diff --git a/arch/x86/mm/pat/set_memory.c b/arch/x86/mm/pat/set_memory.c index 40581a720fe82..a4b1b329c23de 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;