On Wed, 13 May 2026 16:19:16 -0400
Rik van Riel <[email protected]> wrote:

> diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
> index a6bb7577e8c5..58e1b427b576 100644
> --- a/kernel/trace/trace_event_perf.c
> +++ b/kernel/trace/trace_event_perf.c
> @@ -497,7 +497,11 @@ static int perf_ftrace_function_register(struct 
> perf_event *event)
>  static int perf_ftrace_function_unregister(struct perf_event *event)
>  {
>       struct ftrace_ops *ops = &event->ftrace_ops;
> -     int ret = unregister_ftrace_function(ops);
> +     int ret = 0;
> +

Because this is different than unregister_ftrace_function() where it will
not fail if the ops is not registered, it deserves a comment. Something
like:

        /*
         * Perf will call this unconditionally even if the ops is not
         * enabled. The unregister_ftrace_function() will warn if called
         * when not enabled. Just bypass the unregistering if ops isn't
         * enabled here.
         */

Thanks,

-- Steve


> +     if (ops->flags & FTRACE_OPS_FL_ENABLED)
> +             ret = unregister_ftrace_function(ops);
> +
>       ftrace_free_filter(ops);
>       return ret;
>  }

Reply via email to