From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: Miaoqian Lin <linmq006@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
Tom Zanussi <zanussi@kernel.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org
Subject: Re: [PATCH] tracing: Fix error handling in event_trigger_parse
Date: Wed, 19 Mar 2025 09:06:50 +0900 [thread overview]
Message-ID: <20250319090650.fe63164eac3ac32bb559ffc8@kernel.org> (raw)
In-Reply-To: <20250318112737.4174-1-linmq006@gmail.com>
On Tue, 18 Mar 2025 19:27:37 +0800
Miaoqian Lin <linmq006@gmail.com> wrote:
> According to event_trigger_alloc() doc, event_trigger_free() should be
> used to free an event_trigger_data object. This fixes a mismatch introduced
> when kzalloc was replaced with event_trigger_alloc without updating
> the corresponding deallocation calls.
>
Hmm, it seems more complicated problems are there. e.g. in `remove = true`
case, since the trigger_data is not initialized (no event_trigger_init()),
the `trigger_data->ref` is 0. Thus, ;
static void
event_trigger_free(struct event_trigger_data *data)
{
if (WARN_ON_ONCE(data->ref <= 0))
return;
data->ref--;
if (!data->ref)
trigger_data_free(data);
}
this will never call `trigger_data_free(data)`.
But latter part(after out_free) seems correct.
Tom, could you check it?
Thank you,
> Fixes: e1f187d09e11 ("tracing: Have existing event_command.parse() implementations use helpers")
> Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
> ---
> kernel/trace/trace_events_trigger.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/kernel/trace/trace_events_trigger.c b/kernel/trace/trace_events_trigger.c
> index d45448947094..8389314b8c2d 100644
> --- a/kernel/trace/trace_events_trigger.c
> +++ b/kernel/trace/trace_events_trigger.c
> @@ -995,7 +995,7 @@ event_trigger_parse(struct event_command *cmd_ops,
>
> if (remove) {
> event_trigger_unregister(cmd_ops, file, glob+1, trigger_data);
> - kfree(trigger_data);
> + event_trigger_free(trigger_data);
> ret = 0;
> goto out;
> }
> @@ -1022,7 +1022,7 @@ event_trigger_parse(struct event_command *cmd_ops,
>
> out_free:
> event_trigger_reset_filter(cmd_ops, trigger_data);
> - kfree(trigger_data);
> + event_trigger_free(trigger_data);
> goto out;
> }
>
> --
> 2.39.5 (Apple Git-154)
>
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
next prev parent reply other threads:[~2025-03-19 0:06 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-18 11:27 [PATCH] tracing: Fix error handling in event_trigger_parse Miaoqian Lin
2025-03-19 0:06 ` Masami Hiramatsu [this message]
2025-03-19 19:03 ` Tom Zanussi
2025-03-22 9:26 ` Steven Rostedt
2025-05-07 13:52 ` Steven Rostedt
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250319090650.fe63164eac3ac32bb559ffc8@kernel.org \
--to=mhiramat@kernel.org \
--cc=linmq006@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=rostedt@goodmis.org \
--cc=zanussi@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.