Files
linux/kernel
Dmitry Vyukov c1cb05e77f kcov: don't instrument with UBSAN
Both KCOV and UBSAN use compiler instrumentation.  If UBSAN detects a bug
in KCOV, it may cause infinite recursion via printk and other common
functions.  We already don't instrument KCOV with KASAN/KCSAN for this
reason, don't instrument it with UBSAN as well.

As a side effect this also resolves the following gcc warning:

conflicting types for built-in function '__sanitizer_cov_trace_switch';
expected 'void(long unsigned int, void *)'
[-Wbuiltin-declaration-mismatch]

It's only reported when kcov.c is compiled with any of the sanitizers
enabled.  Size of the arguments is correct, it's just that gcc uses 'long'
on 64-bit arches and 'long long' on 32-bit arches, while kernel type is
always 'long long'.

Link: https://lkml.kernel.org/r/20201209100152.2492072-1-dvyukov@google.com
Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Suggested-by: Marco Elver <elver@google.com>
Acked-by: Marco Elver <elver@google.com>
Reviewed-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2020-12-15 22:46:19 -08:00
..
2020-12-09 17:47:36 -08:00
2020-11-24 16:47:49 +01:00
2020-12-15 22:46:18 -08:00
2020-08-26 09:10:39 -04:00
2020-12-09 17:08:45 +01:00
2020-12-15 22:46:19 -08:00
2020-11-14 11:26:04 -08:00
2020-07-27 14:31:12 -04:00
2020-12-01 10:30:28 +00:00
2020-08-19 14:14:12 +02:00
2020-07-07 11:58:59 -05:00
2020-08-19 14:13:20 +02:00