On Fri, 1 Jul 2022 at 16:23, Alexander Potapenko <glider@xxxxxxxxxx> wrote: > > EFI stub cannot be linked with KMSAN runtime, so we disable > instrumentation for it. > > Instrumenting kcov, stackdepot or lockdep leads to infinite recursion > caused by instrumentation hooks calling instrumented code again. > > This patch was previously part of "kmsan: disable KMSAN instrumentation > for certain kernel parts", but was split away per Mark Rutland's > request. The "This patch..." paragraph feels out of place, and feels like it should be part of a v4 changelog below ---. > Signed-off-by: Alexander Potapenko <glider@xxxxxxxxxx> Otherwise, Reviewed-by: Marco Elver <elver@xxxxxxxxxx> > --- > Link: https://linux-review.googlesource.com/id/I41ae706bd3474f074f6a870bfc3f0f90e9c720f7 > --- > drivers/firmware/efi/libstub/Makefile | 1 + > kernel/Makefile | 1 + > kernel/locking/Makefile | 3 ++- > lib/Makefile | 1 + > 4 files changed, 5 insertions(+), 1 deletion(-) > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile > index d0537573501e9..81432d0c904b1 100644 > --- a/drivers/firmware/efi/libstub/Makefile > +++ b/drivers/firmware/efi/libstub/Makefile > @@ -46,6 +46,7 @@ GCOV_PROFILE := n > # Sanitizer runtimes are unavailable and cannot be linked here. > KASAN_SANITIZE := n > KCSAN_SANITIZE := n > +KMSAN_SANITIZE := n > UBSAN_SANITIZE := n > OBJECT_FILES_NON_STANDARD := y > > diff --git a/kernel/Makefile b/kernel/Makefile > index a7e1f49ab2b3b..e47f0526c987f 100644 > --- a/kernel/Makefile > +++ b/kernel/Makefile > @@ -38,6 +38,7 @@ KCOV_INSTRUMENT_kcov.o := n > KASAN_SANITIZE_kcov.o := n > KCSAN_SANITIZE_kcov.o := n > UBSAN_SANITIZE_kcov.o := n > +KMSAN_SANITIZE_kcov.o := n > CFLAGS_kcov.o := $(call cc-option, -fno-conserve-stack) -fno-stack-protector > > # Don't instrument error handlers > diff --git a/kernel/locking/Makefile b/kernel/locking/Makefile > index d51cabf28f382..ea925731fa40f 100644 > --- a/kernel/locking/Makefile > +++ b/kernel/locking/Makefile > @@ -5,8 +5,9 @@ KCOV_INSTRUMENT := n > > obj-y += mutex.o semaphore.o rwsem.o percpu-rwsem.o > > -# Avoid recursion lockdep -> KCSAN -> ... -> lockdep. > +# Avoid recursion lockdep -> sanitizer -> ... -> lockdep. > KCSAN_SANITIZE_lockdep.o := n > +KMSAN_SANITIZE_lockdep.o := n > > ifdef CONFIG_FUNCTION_TRACER > CFLAGS_REMOVE_lockdep.o = $(CC_FLAGS_FTRACE) > diff --git a/lib/Makefile b/lib/Makefile > index f99bf61f8bbc6..5056769d00bb6 100644 > --- a/lib/Makefile > +++ b/lib/Makefile > @@ -272,6 +272,7 @@ obj-$(CONFIG_POLYNOMIAL) += polynomial.o > CFLAGS_stackdepot.o += -fno-builtin > obj-$(CONFIG_STACKDEPOT) += stackdepot.o > KASAN_SANITIZE_stackdepot.o := n > +KMSAN_SANITIZE_stackdepot.o := n > KCOV_INSTRUMENT_stackdepot.o := n > > obj-$(CONFIG_REF_TRACKER) += ref_tracker.o > -- > 2.37.0.rc0.161.g10f37bed90-goog >