objtool, kcsan: Add volatile read/write instrumentation to whitelist
authorMarco Elver <elver@google.com>
Mon, 12 Sep 2022 09:45:41 +0000 (11:45 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 31 Dec 2022 12:13:57 +0000 (13:13 +0100)
[ Upstream commit 63646fcba5bb4b59a19031c21913f94e46a3d0d4 ]

Adds KCSAN's volatile instrumentation to objtool's uaccess whitelist.

Recent kernel change have shown that this was missing from the uaccess
whitelist (since the first upstreamed version of KCSAN):

  mm/gup.o: warning: objtool: fault_in_readable+0x101: call to __tsan_volatile_write1() with UACCESS enabled

Fixes: 75d75b7a4d54 ("kcsan: Support distinguishing volatile accesses")
Signed-off-by: Marco Elver <elver@google.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tools/objtool/check.c

index 72e5d23..edac5aa 100644 (file)
@@ -846,6 +846,16 @@ static const char *uaccess_safe_builtin[] = {
        "__tsan_read_write4",
        "__tsan_read_write8",
        "__tsan_read_write16",
+       "__tsan_volatile_read1",
+       "__tsan_volatile_read2",
+       "__tsan_volatile_read4",
+       "__tsan_volatile_read8",
+       "__tsan_volatile_read16",
+       "__tsan_volatile_write1",
+       "__tsan_volatile_write2",
+       "__tsan_volatile_write4",
+       "__tsan_volatile_write8",
+       "__tsan_volatile_write16",
        "__tsan_atomic8_load",
        "__tsan_atomic16_load",
        "__tsan_atomic32_load",