]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Aug 2018 15:20:15 +0000 (17:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 Aug 2018 15:20:15 +0000 (17:20 +0200)
added patches:
kasan-don-t-emit-builtin-calls-when-sanitization-is-off.patch

queue-4.9/kasan-don-t-emit-builtin-calls-when-sanitization-is-off.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/kasan-don-t-emit-builtin-calls-when-sanitization-is-off.patch b/queue-4.9/kasan-don-t-emit-builtin-calls-when-sanitization-is-off.patch
new file mode 100644 (file)
index 0000000..53279bf
--- /dev/null
@@ -0,0 +1,78 @@
+From 0e410e158e5baa1300bdf678cea4f4e0cf9d8b94 Mon Sep 17 00:00:00 2001
+From: Andrey Konovalov <andreyknvl@google.com>
+Date: Tue, 6 Feb 2018 15:36:00 -0800
+Subject: kasan: don't emit builtin calls when sanitization is off
+
+From: Andrey Konovalov <andreyknvl@google.com>
+
+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@google.com
+Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
+Acked-by: Nick Desaulniers <ndesaulniers@google.com>
+Cc: Masahiro Yamada <yamada.masahiro@socionext.com>
+Cc: Michal Marek <michal.lkml@markovi.net>
+Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
+Cc: Alexander Potapenko <glider@google.com>
+Cc: Dmitry Vyukov <dvyukov@google.com>
+Cc: <stable@vger.kernel.org>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+[ Sami: Backported to 4.9 avoiding c5caf21ab0cf8 and e7c52b84fb ]
+Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
+Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ Makefile               |    3 ++-
+ scripts/Makefile.kasan |    3 +++
+ scripts/Makefile.lib   |    2 +-
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+--- a/Makefile
++++ b/Makefile
+@@ -417,7 +417,8 @@ export MAKE AWK GENKSYMS INSTALLKERNEL P
+ export HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS
+ export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS
+-export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_KASAN CFLAGS_UBSAN
++export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
++export CFLAGS_KASAN CFLAGS_KASAN_NOSANITIZE CFLAGS_UBSAN
+ export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
+ export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
+ export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
+--- a/scripts/Makefile.kasan
++++ b/scripts/Makefile.kasan
+@@ -28,4 +28,7 @@ else
+         CFLAGS_KASAN := $(CFLAGS_KASAN_MINIMAL)
+     endif
+ endif
++
++CFLAGS_KASAN_NOSANITIZE := -fno-builtin
++
+ endif
+--- a/scripts/Makefile.lib
++++ b/scripts/Makefile.lib
+@@ -127,7 +127,7 @@ endif
+ ifeq ($(CONFIG_KASAN),y)
+ _c_flags += $(if $(patsubst n%,, \
+               $(KASAN_SANITIZE_$(basetarget).o)$(KASAN_SANITIZE)y), \
+-              $(CFLAGS_KASAN))
++              $(CFLAGS_KASAN), $(CFLAGS_KASAN_NOSANITIZE))
+ endif
+ ifeq ($(CONFIG_UBSAN),y)
index 1ecc038ab290e5f74bfd60d48813481059fdcc7d..24b6ed3b7dd211085e3fa92fb418e2cf6fa14a68 100644 (file)
@@ -1,3 +1,4 @@
 x86-l1tf-fix-build-error-seen-if-config_kvm_intel-is-disabled.patch
 x86-i8259-add-missing-include-file.patch
 x86-mm-disable-ioremap-free-page-handling-on-x86-pae.patch
+kasan-don-t-emit-builtin-calls-when-sanitization-is-off.patch