aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2020-04-06 20:10:19 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2020-04-07 10:43:43 -0700
commit7b65942fb2f0ac939be9c659bb889e78b399f84e (patch)
tree783d56f4fb7ed1c67393cc5577652a4c8ca06780 /lib
parentlib/stackdepot.c: check depot_index before accessing the stack slab (diff)
downloadlinux-dev-7b65942fb2f0ac939be9c659bb889e78b399f84e.tar.xz
linux-dev-7b65942fb2f0ac939be9c659bb889e78b399f84e.zip
lib/stackdepot.c: build with -fno-builtin
Clang may replace stackdepot_memcmp() with a call to instrumented bcmp(), which is exactly what we wanted to avoid creating stackdepot_memcmp(). Building the file with -fno-builtin prevents such optimizations. This patch has been previously mailed as part of KMSAN RFC patch series. Signed-off-by: Alexander Potapenko <glider@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Cc: Vegard Nossum <vegard.nossum@oracle.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Marco Elver <elver@google.com> Cc: Andrey Konovalov <andreyknvl@google.com> Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Link: http://lkml.kernel.org/r/20200220141916.55455-2-glider@google.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'lib')
-rw-r--r--lib/Makefile4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Makefile b/lib/Makefile
index 93d05ff4f501..3fc06399295d 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -223,6 +223,10 @@ obj-$(CONFIG_MEMREGION) += memregion.o
obj-$(CONFIG_STMP_DEVICE) += stmp_device.o
obj-$(CONFIG_IRQ_POLL) += irq_poll.o
+# stackdepot.c should not be instrumented or call instrumented functions.
+# Prevent the compiler from calling builtins like memcmp() or bcmp() from this
+# file.
+CFLAGS_stackdepot.o += -fno-builtin
obj-$(CONFIG_STACKDEPOT) += stackdepot.o
KASAN_SANITIZE_stackdepot.o := n
KCOV_INSTRUMENT_stackdepot.o := n