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