lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <93376a9d-681c-b8e2-0aae-031ae036789e@suse.cz>
Date:   Tue, 16 Nov 2021 00:00:29 +0100
From:   Vlastimil Babka <vbabka@...e.cz>
To:     Rustam Kovhaev <rkovhaev@...il.com>, cl@...ux.com,
        penberg@...nel.org, rientjes@...gle.com, iamjoonsoo.kim@....com,
        akpm@...ux-foundation.org, catalin.marinas@....com
Cc:     linux-kernel@...r.kernel.org, linux-mm@...ck.org,
        gregkh@...uxfoundation.org
Subject: Re: [PATCH] mm: kmemleak: slob: respect SLAB_NOLEAKTRACE flag

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@...il.com>

Acked-by: Vlastimil Babka <vbabka@...e.cz>

> ---
>  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 */
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ