Messages in this thread | | | Date | Wed, 8 Mar 2023 16:41:37 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH] tracing, hardirq: Do not test lockdep on irq trace points when disabled |
| |
On Wed, 8 Mar 2023 11:56:06 -0500 Steven Rostedt <rostedt@goodmis.org> wrote:
> diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h > index e299f29375bb..d3a221158ab1 100644 > --- a/include/linux/tracepoint.h > +++ b/include/linux/tracepoint.h > @@ -260,9 +260,7 @@ static inline struct tracepoint *tracepoint_ptr_deref(tracepoint_ptr_t *p) > TP_ARGS(args), \ > TP_CONDITION(cond), 0); \ > if (IS_ENABLED(CONFIG_LOCKDEP) && (cond)) { \ > - rcu_read_lock_sched_notrace(); \ > - rcu_dereference_sched(__tracepoint_##name.funcs);\ > - rcu_read_unlock_sched_notrace(); \ > + WARN_ON_ONCE(!rcu_is_watching()); \ > } \ > } \ > __DECLARE_TRACE_RCU(name, PARAMS(proto), PARAMS(args), \
This fixes the hung tasks as well. I'll push this through instead, and mark it for stable. As the old check was incorrect for a long time.
-- Steve
| |