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)
committerPaul E. McKenney <paulmck@kernel.org>
Tue, 18 Oct 2022 22:07:33 +0000 (15:07 -0700)
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>
tools/objtool/check.c

index 43ec14c..a7f1e6c 100644 (file)
@@ -999,6 +999,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",