Re: [PATCH 4.9] kasan: don't emit builtin calls when sanitization is off

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Aug 14, 2018 at 02:53:00PM -0700, Nick Desaulniers wrote:
> From: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
> 
> commit 0e410e158e5baa1300bdf678cea4f4e0cf9d8b94 upstream.
> 
> With KASAN enabled the kernel has two different memset() functions, one
> with KASAN checks (memset) and one without (__memset).  KASAN uses some
> macro tricks to use the proper version where required.  For example
> memset() calls in mm/slub.c are without KASAN checks, since they operate
> on poisoned slab object metadata.
> 
> The issue is that clang emits memset() calls even when there is no
> memset() in the source code.  They get linked with improper memset()
> implementation and the kernel fails to boot due to a huge amount of KASAN
> reports during early boot stages.
> 
> The solution is to add -fno-builtin flag for files with KASAN_SANITIZE :=
> n marker.
> 
> Link: http://lkml.kernel.org/r/8ffecfffe04088c52c42b92739c2bd8a0bcb3f5e.1516384594.git.andreyknvl@xxxxxxxxxx
> Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx>
> Acked-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Cc: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> Cc: Michal Marek <michal.lkml@xxxxxxxxxxx>
> Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx>
> Cc: Alexander Potapenko <glider@xxxxxxxxxx>
> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> [ Sami: Backported to 4.9 avoiding c5caf21ab0cf8 and e7c52b84fb ]
> Signed-off-by: Sami Tolvanen <samitolvanen@xxxxxxxxxx>
> Signed-off-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>

I've now queued this, and the 4.4 backport up, thanks!

greg k-h



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux