On Tue, Sep 29, 2020 at 10:34:54AM -0400, Steven Rostedt wrote: > Anyway, you bring up a good point. I should have this: Acked-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index 84f32dbc7be8..2d76eaaad4a7 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -6993,16 +6993,14 @@ static void ftrace_ops_assist_func(unsigned long ip, unsigned long parent_ip, > { > int bit; > > - if ((op->flags & FTRACE_OPS_FL_RCU) && !rcu_is_watching()) > - return; > - > bit = trace_test_and_set_recursion(TRACE_LIST_START, TRACE_LIST_MAX); > if (bit < 0) > return; > > preempt_disable_notrace(); > > - op->func(ip, parent_ip, op, regs); > + if (!(op->flags & FTRACE_OPS_FL_RCU) || rcu_is_watching()) > + op->func(ip, parent_ip, op, regs); > > preempt_enable_notrace(); > trace_clear_recursion(bit); > > > > -- Steve