> On May 14, 2026, at 15:56, Oscar Salvador <[email protected]> wrote:
> 
> On Wed, May 13, 2026 at 09:04:30PM +0800, Muchun Song wrote:
>> __hugetlb_vmemmap_optimize_folios() uses incorrect arguments when handling
>> bootmem HugeTLB folios.
>> 
>> The section number passed to register_page_bootmem_memmap() is derived from
>> the vmemmap virtual address of folio->page instead of the folio PFN, so the
>> bootmem memmap metadata can be registered against the wrong section. The
>> helper is also given HUGETLB_VMEMMAP_RESERVE_SIZE even though it expects a
>> page count, not a size in bytes. In addition, the write-protect range is
>> based on pages_per_huge_page(h), which does not cover the full HugeTLB
>> vmemmap area and can leave part of the shared tail vmemmap mapping writable.
>> 
>> Fix the section lookup to use folio_pfn(folio), use
>> HUGETLB_VMEMMAP_RESERVE_PAGES when registering the reserved memmap pages, and
>> use hugetlb_vmemmap_size(h) for the write-protect range.
>> 
>> Fixes: 752fe17af693 ("mm/hugetlb: add pre-HVO framework")
>> Signed-off-by: Muchun Song <[email protected]>
> 
> Acked-by: Oscar Salvador <[email protected]>

Thanks.

> 
> did you observe any Ooops or malfunctioning or was just code reviewing?

Found by LLM (Gemini Pro).

When I touched the code here, LLM will report the bug as well, even it is
not introduced by me :)

Thanks,
Muchun

> 
> 
> 
> -- 
> Oscar Salvador
> SUSE Labs



Reply via email to