Re: [PATCH] x86/mm: fix freeing of PMD-sized vmemmap pages
From: David Hildenbrand (Arm)
Date: Tue Apr 28 2026 - 06:35:59 EST
>
> -static void __meminit free_hugepage_table(struct page *page,
> +static void __meminit free_vmemmap_pages(struct page *page, unsigned int order,
> struct vmem_altmap *altmap)
> {
> - if (altmap)
> - vmem_altmap_free(altmap, PMD_SIZE / PAGE_SIZE);
> - else
> - free_pagetable(page, get_order(PMD_SIZE));
> + if (altmap) {
> + vmem_altmap_free(altmap, 1u << order);
> + } else if (PageReserved(page)) {
> + unsigned long nr_pages = 1 << order;
Staring at this code again, I should move that up so I can reuse it in the
vmem_altmap_free() call.
--
Cheers,
David