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