Re: [PATCH 4/8] mm/bootmem_info: remove call to kmemleak_free_part_phys()
flat view
From: "David Hildenbrand (Arm)" <david@kernel.org>
Date: 2026-05-12 08:45:11
Also in:
linux-mm, linux-s390, lkml, sparclinux
On 5/12/26 10:34, Oscar Salvador wrote:
On Mon, May 11, 2026 at 04:05:32PM +0200, David Hildenbrand (Arm) wrote:quoted
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) <david@kernel.org>Reviewed-by: Oscar Salvador <osalvador@suse.de>quoted
--- 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); } #endifdiff --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