On Wed, 13 May 2026 12:16:07 -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..b9e33ae24867 100644
> --- a/kernel/trace/trace_event_perf.c
> +++ b/kernel/trace/trace_event_perf.c
> @@ -497,7 +497,14 @@ 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;
> +
> +     if (!(ops->flags & FTRACE_OPS_FL_ENABLED)) {
> +             ftrace_free_filter(ops);
> +             return 0;
> +     }
> +
> +     ret = unregister_ftrace_function(ops);
>       ftrace_free_filter(ops);
>       return ret;
>  }
> -- 

Instead of duplicating code, what about doing:

static int perf_ftrace_function_unregister(struct perf_event *event)
{
        struct ftrace_ops *ops = &event->ftrace_ops;
        int ret = 0;

        if (ops->flags & FTRACE_OPS_FL_ENABLED)
                ret = unregister_ftrace_function(ops);

        ftrace_free_filter(ops);
        return ret;
}


?

-- Steve

Reply via email to