Re: [PATCH] mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag
From: Vlastimil Babka
Date: Mon Nov 15 2021 - 19:12:41 EST
On 11/15/21 03:08, Rustam Kovhaev wrote:
> When kmemleak is enabled for SLOB, system does not boot and does not
> print anything to the console. At the very early stage in the boot
> process we hit infinite recursion from kmemleak_init() and eventually
> kernel crashes.
> kmemleak_init() specifies SLAB_NOLEAKTRACE for KMEM_CACHE(), but
> kmem_cache_create_usercopy() removes it because CACHE_CREATE_MASK is not
> valid for SLOB.
> Let's fix CACHE_CREATE_MASK and make kmemleak work with SLOB
>
> Fixes: d8843922fba4 ("slab: Ignore internal flags in cache creation")
> Signed-off-by: Rustam Kovhaev <rkovhaev@xxxxxxxxx>
Acked-by: Vlastimil Babka <vbabka@xxxxxxx>
> ---
> mm/slab.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/slab.h b/mm/slab.h
> index 58c01a34e5b8..56ad7eea3ddf 100644
> --- a/mm/slab.h
> +++ b/mm/slab.h
> @@ -147,7 +147,7 @@ static inline slab_flags_t kmem_cache_flags(unsigned int object_size,
> #define SLAB_CACHE_FLAGS (SLAB_NOLEAKTRACE | SLAB_RECLAIM_ACCOUNT | \
> SLAB_TEMPORARY | SLAB_ACCOUNT)
> #else
> -#define SLAB_CACHE_FLAGS (0)
> +#define SLAB_CACHE_FLAGS (SLAB_NOLEAKTRACE)
> #endif
>
> /* Common flags available with current configuration */
>