From: Ran Xiaokai Date: Tue, 30 Sep 2025 06:38:31 +0000 (+0000) Subject: slab: Add allow_spin check to eliminate kmemleak warnings X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e95e2d3f34642d1bfd97c703c23c9c282a64d686;p=users%2Fhch%2Fmisc.git slab: Add allow_spin check to eliminate kmemleak warnings In slab_post_alloc_hook(), kmemleak check is skipped when gfpflags_allow_spinning() returns false since commit af92793e52c3 ("slab: Introduce kmalloc_nolock() and kfree_nolock().") Therefore, unconditionally calling kmemleak_not_leak() in alloc_slab_obj_exts() would trigger the following warning: kmemleak: Trying to color unknown object at 0xffff8881057f5000 as Grey Call Trace: alloc_slab_obj_exts+0x1b5/0x370 __alloc_tagging_slab_alloc_hook+0x9f/0x2d0 __kmalloc_cache_noprof+0x1c4/0x5c0 __set_page_owner+0x10d/0x1c0 post_alloc_hook+0x84/0xf0 get_page_from_freelist+0x73b/0x1380 __alloc_frozen_pages_noprof+0x110/0x2c0 alloc_pages_mpol+0x44/0x140 alloc_slab_page+0xac/0x150 allocate_slab+0x78/0x3a0 ___slab_alloc+0x76b/0xed0 __slab_alloc.constprop.0+0x5a/0xb0 Add the allow_spin check in alloc_slab_obj_exts() to eliminate the above warning. Fixes: af92793e52c3 ("slab: Introduce kmalloc_nolock() and kfree_nolock().") Signed-off-by: Ran Xiaokai Reviewed-by: Harry Yoo Acked-by: Alexei Starovoitov Link: https://lore.kernel.org/r/20250930063831.782815-1-ranxiaokai627@163.com Signed-off-by: Vlastimil Babka --- diff --git a/mm/slub.c b/mm/slub.c index 584a5ff1828b..1433f5b988f7 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -2152,7 +2152,8 @@ int alloc_slab_obj_exts(struct slab *slab, struct kmem_cache *s, return 0; } - kmemleak_not_leak(vec); + if (allow_spin) + kmemleak_not_leak(vec); return 0; }