On 5/12/26 10:34, Oscar Salvador wrote:
> On Mon, May 11, 2026 at 04:05:32PM +0200, David Hildenbrand (Arm) wrote:
>> The call to kmemleak_free_part_phys() was added in 2022 in
>> commit dd0ff4d12dd2 ("bootmem: remove the vmemmap pages from kmemleak in
>> put_page_bootmem").
>>
>> In 2025, commit b2aad24b5333 ("mm/memmap: prevent double scanning of memmap
>> by kmemleak") started to use MEMBLOCK_ALLOC_NOLEAKTRACE when allocating
>> the memmap to skip the kmemleak_alloc_phys() in the buddy.
>>
>> So remove the call to kmemleak_free_part_phys(). If this would still
>> be required for other purposes, either free_reserved_page() should take
>> care of it, or selected users.
>>
>> Signed-off-by: David Hildenbrand (Arm) <[email protected]>
>
> Reviewed-by: Oscar Salvador <[email protected]>
>
>> ---
>> include/linux/bootmem_info.h | 1 -
>> mm/bootmem_info.c | 1 -
>> 2 files changed, 2 deletions(-)
>>
>> diff --git a/include/linux/bootmem_info.h b/include/linux/bootmem_info.h
>> index 492ceeb1cdf8..f724340755e5 100644
>> --- a/include/linux/bootmem_info.h
>> +++ b/include/linux/bootmem_info.h
>> @@ -82,7 +82,6 @@ static inline void get_page_bootmem(unsigned long info,
>> struct page *page,
>>
>> static inline void free_bootmem_page(struct page *page)
>> {
>> - kmemleak_free_part_phys(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE);
>> free_reserved_page(page);
>> }
>> #endif
>> diff --git a/mm/bootmem_info.c b/mm/bootmem_info.c
>> index 6e2aaab3dca9..74c1116626c8 100644
>> --- a/mm/bootmem_info.c
>> +++ b/mm/bootmem_info.c
>> @@ -32,7 +32,6 @@ void put_page_bootmem(struct page *page)
>>
>> if (page_ref_dec_return(page) == 1) {
>> set_page_private(page, 0);
>> - kmemleak_free_part_phys(PFN_PHYS(page_to_pfn(page)), PAGE_SIZE);
>
> A bit odd that kmemleak_free_part_phys() did not complain if we never
> did kmemleak_alloc_phys() for these pages?
delete_object_part() calls __find_and_remove_object() and essentially just skips
if it didn't find anything.
Maybe the kmemleak_warn() would trigger, but it's guarded by "#ifdef DEBUG" ...
--
Cheers,
David