On Wed, 19 Feb 2025 13:50:40 -0500 Steven Rostedt <[email protected]> wrote:
> From: Steven Rostedt <[email protected]> > > The ftrace_free_filter() is used to reset the ops filters. But it must be > done if the ops is not currently active (tracing). If it is, it will mess > up the ftrace accounting of what functions are attached and what is not. > > WARN and exit the ftrace_free_filter() if the ops is active when it is > called. > > Currently, it doesn't seem if anything does this, but it may in the > future. > > Link: https://lore.kernel.org/all/[email protected]/ > > Signed-off-by: Steven Rostedt (Google) <[email protected]> Looks good to me. Reviewed-by: Masami Hiramatsu (Google) <[email protected]> Thanks, > --- > kernel/trace/ftrace.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c > index 189eb0a12f4b..4f6cad3b05b2 100644 > --- a/kernel/trace/ftrace.c > +++ b/kernel/trace/ftrace.c > @@ -1296,6 +1296,8 @@ static void free_ftrace_hash_rcu(struct ftrace_hash > *hash) > void ftrace_free_filter(struct ftrace_ops *ops) > { > ftrace_ops_init(ops); > + if (WARN_ON(ops->flags & FTRACE_OPS_FL_ENABLED)) > + return; > free_ftrace_hash(ops->func_hash->filter_hash); > free_ftrace_hash(ops->func_hash->notrace_hash); > } > -- > 2.47.2 > -- Masami Hiramatsu (Google) <[email protected]>
