On Wed, Apr 29, 2020 at 02:18:46PM -0500, Josh Poimboeuf wrote: > On Tue, Apr 28, 2020 at 11:10:44AM -0500, Josh Poimboeuf wrote: > > > ==> build/x86/0x2EA4CE4F_defconfig/log <== > > > kernel/kcov.o: warning: objtool: write_comp_data()+0x1b: call to > > > check_kcov_mode() with UACCESS enabled > > > kernel/kcov.o: warning: objtool: __sanitizer_cov_trace_pc()+0x15: call to > > > check_kcov_mode() with UACCESS enabled > > From: Josh Poimboeuf <[email protected]> > Subject: [PATCH] objtool: Add check_kcov_mode() to the uaccess safelist > > check_kcov_mode() is called by write_comp_data() and > __sanitizer_cov_trace_pc(), which are already on the uaccess safe list. > Might as well add check_kcov_mode() to the party.
Hurmph, the actual reason it's ok is because it's notrace and doesn't call out to other stuff, that's the reason those other two functions got away without having user_access_save()/restore() on. The alternative fix would be to mark that check_kcov_mode() thing as __always_inline, it's puny anyway. > This fixes the following warnings: > > kernel/kcov.o: warning: objtool: __sanitizer_cov_trace_pc()+0x15: call to > check_kcov_mode() with UACCESS enabled > kernel/kcov.o: warning: objtool: write_comp_data()+0x1b: call to > check_kcov_mode() with UACCESS enabled > > Reported-by: Arnd Bergmann <[email protected]> > Signed-off-by: Josh Poimboeuf <[email protected]> Acked-by: Peter Zijlstra (Intel) <[email protected]> > --- > tools/objtool/check.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/tools/objtool/check.c b/tools/objtool/check.c > index 0c732d586924..fec890547e04 100644 > --- a/tools/objtool/check.c > +++ b/tools/objtool/check.c > @@ -516,6 +516,7 @@ static const char *uaccess_safe_builtin[] = { > "__tsan_write16", > /* KCOV */ > "write_comp_data", > + "check_kcov_mode", > "__sanitizer_cov_trace_pc", > "__sanitizer_cov_trace_const_cmp1", > "__sanitizer_cov_trace_const_cmp2", > -- > 2.21.1 >

