Re: [PATCH 01/10] x86/mm: drop order parameter from free_pagetable()
From: David Hildenbrand (Arm)
Date: Wed Jul 08 2026 - 11:46:46 EST
> /* free a pte table */
> - free_pagetable(pmd_page(*pmd), 0);
> + free_pagetable(pmd_page(*pmd));
> spin_lock(&init_mm.page_table_lock);
> pmd_clear(pmd);
> spin_unlock(&init_mm.page_table_lock);
> @@ -1078,7 +1075,7 @@ static void __meminit free_pmd_table(pmd_t *pmd_start, pud_t *pud)
> }
>
> /* free a pmd table */
> - free_pagetable(pud_page(*pud), 0);
> + free_pagetable(pud_page(*pud));
> spin_lock(&init_mm.page_table_lock);
> pud_clear(pud);
> spin_unlock(&init_mm.page_table_lock);
> @@ -1096,7 +1093,7 @@ static void __meminit free_pud_table(pud_t *pud_start, p4d_t *p4d)
> }
>
> /* free a pud table */
> - free_pagetable(p4d_page(*p4d), 0);
> + free_pagetable(p4d_page(*p4d));
> spin_lock(&init_mm.page_table_lock);
> p4d_clear(p4d);
> spin_unlock(&init_mm.page_table_lock);
>
Sashiko raises some pre-existing things around use-after free that I will just
ignore. We don't expect anybody to walk pages tables we are tearing down here,
and we'd have to wait for the TLB flush to get this right. And I don't see the
need to.
--
Cheers,
David