Arnd Bergmann
unread,Mar 6, 2026, 10:06:21 AMMar 6Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Andrew Morton, Nathan Chancellor, Arnd Bergmann, Kees Cook, Marco Elver, Andrey Konovalov, Andrey Ryabinin, kasa...@googlegroups.com, linux-h...@vger.kernel.org, Nick Desaulniers, Bill Wendling, Justin Stitt, Peter Zijlstra (Intel), linux-...@vger.kernel.org, ll...@lists.linux.dev
From: Arnd Bergmann <
ar...@arndb.de>
The structure initialization in the two type mismatch handling functions
causes a call to __msan_memset() to be generated inside of a UACCESS
block, which in turn leads to an objtool warning about possibly leaking
uaccess-enabled state:
lib/ubsan.o: warning: objtool: __ubsan_handle_type_mismatch+0xda: call to __msan_memset() with UACCESS enabled
lib/ubsan.o: warning: objtool: __ubsan_handle_type_mismatch_v1+0xf4: call to __msan_memset() with UACCESS enabled
Most likely __msan_memset() is safe to be called here and could be added
to the uaccess_safe_builtin[] list of safe functions, but seeing that
the ubsan file itself already has kasan, ubsan and kcsan disabled itself,
it is probably a good idea to also turn off kmsan here, in particular this
also avoids the risk of recursing between ubsan and kcsan checks in
other functions of this file.
I saw this happen while testing randconfig builds with clang-22, but did
not try older versions, or attempt to see which kernel change introduced
the warning.
Cc: Kees Cook <
ke...@kernel.org>
Cc: Marco Elver <
el...@google.com>
Cc: Andrey Konovalov <
andre...@gmail.com>
Cc: Andrey Ryabinin <
ryabin...@gmail.com>
Cc:
kasa...@googlegroups.com
Cc:
linux-h...@vger.kernel.org
Signed-off-by: Arnd Bergmann <
ar...@arndb.de>
---
lib/Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/Makefile b/lib/Makefile
index 280a71e4f813..3e1eeefd9832 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -306,6 +306,7 @@ obj-$(CONFIG_UBSAN) += ubsan.o
UBSAN_SANITIZE_ubsan.o := n
KASAN_SANITIZE_ubsan.o := n
KCSAN_SANITIZE_ubsan.o := n
+KMSAN_SANITIZE_ubsan.o := n
CFLAGS_ubsan.o := -fno-stack-protector $(DISABLE_KSTACK_ERASE)
obj-$(CONFIG_SBITMAP) += sbitmap.o
--
2.39.5