On Tue, 5 Oct 2021 at 14:53, Peter Zijlstra <peterz@xxxxxxxxxxxxx> wrote: > On Tue, Oct 05, 2021 at 12:58:46PM +0200, Marco Elver wrote: > > +#if !defined(CONFIG_ARCH_WANTS_NO_INSTR) || defined(CONFIG_STACK_VALIDATION) > > +/* > > + * Arch does not rely on noinstr, or objtool will remove memory barrier > > + * instrumentation, and no instrumentation of noinstr code is expected. > > + */ > > +#define kcsan_noinstr > > I think this still wants to be at the very least: > > #define kcsan_noinstr noinline notrace > > without noinline it is possible LTO (or similarly daft things) will end > up inlining the calls, and since we rely on objtool to NOP out CALLs > this must not happen. Good point about noinline, will add. > And since you want to mark these functions as uaccess_safe, there must > not be any tracing on, hence notrace. In the Makefile we've relied on: CFLAGS_REMOVE_core.o = $(CC_FLAGS_FTRACE) just to disable it for all code here. That should be enough, right?