From: Masami Hiramatsu <mhiramat@kernel.org>
To: Steven Rostedt <rostedt@goodmis.org>
Cc: linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
"Tzvetomir Stoyanov" <tz.stoyanov@gmail.com>,
Tom Zanussi <zanussi@kernel.org>,
linux-trace-devel@vger.kernel.org
Subject: Re: [PATCH v6 5/7] tracing/probes: Use struct_size() instead of defining custom macros
Date: Wed, 18 Aug 2021 20:08:51 +0900 [thread overview]
Message-ID: <20210818200851.954e5030a64eb11ee156fa78@kernel.org> (raw)
In-Reply-To: <20210817035027.795000217@goodmis.org>
On Mon, 16 Aug 2021 23:43:00 -0400
Steven Rostedt <rostedt@goodmis.org> wrote:
> From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
>
> Remove SIZEOF_TRACE_KPROBE() and SIZEOF_TRACE_UPROBE() and use
> struct_size() as that's what it is made for. No need to have custom
> macros. Especially since struct_size() has some extra memory checks for
> correctness.
>
Good catch!
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Thank you!
> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
> ---
> kernel/trace/trace_kprobe.c | 6 +-----
> kernel/trace/trace_uprobe.c | 6 +-----
> 2 files changed, 2 insertions(+), 10 deletions(-)
>
> diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c
> index ed1e3c2087ab..ca726c9d0859 100644
> --- a/kernel/trace/trace_kprobe.c
> +++ b/kernel/trace/trace_kprobe.c
> @@ -80,10 +80,6 @@ static struct trace_kprobe *to_trace_kprobe(struct dyn_event *ev)
> for_each_dyn_event(dpos) \
> if (is_trace_kprobe(dpos) && (pos = to_trace_kprobe(dpos)))
>
> -#define SIZEOF_TRACE_KPROBE(n) \
> - (offsetof(struct trace_kprobe, tp.args) + \
> - (sizeof(struct probe_arg) * (n)))
> -
> static nokprobe_inline bool trace_kprobe_is_return(struct trace_kprobe *tk)
> {
> return tk->rp.handler != NULL;
> @@ -265,7 +261,7 @@ static struct trace_kprobe *alloc_trace_kprobe(const char *group,
> struct trace_kprobe *tk;
> int ret = -ENOMEM;
>
> - tk = kzalloc(SIZEOF_TRACE_KPROBE(nargs), GFP_KERNEL);
> + tk = kzalloc(struct_size(tk, tp.args, nargs), GFP_KERNEL);
> if (!tk)
> return ERR_PTR(ret);
>
> diff --git a/kernel/trace/trace_uprobe.c b/kernel/trace/trace_uprobe.c
> index 93ff96541971..590bb9a02f8d 100644
> --- a/kernel/trace/trace_uprobe.c
> +++ b/kernel/trace/trace_uprobe.c
> @@ -83,10 +83,6 @@ static struct trace_uprobe *to_trace_uprobe(struct dyn_event *ev)
> for_each_dyn_event(dpos) \
> if (is_trace_uprobe(dpos) && (pos = to_trace_uprobe(dpos)))
>
> -#define SIZEOF_TRACE_UPROBE(n) \
> - (offsetof(struct trace_uprobe, tp.args) + \
> - (sizeof(struct probe_arg) * (n)))
> -
> static int register_uprobe_event(struct trace_uprobe *tu);
> static int unregister_uprobe_event(struct trace_uprobe *tu);
>
> @@ -340,7 +336,7 @@ alloc_trace_uprobe(const char *group, const char *event, int nargs, bool is_ret)
> struct trace_uprobe *tu;
> int ret;
>
> - tu = kzalloc(SIZEOF_TRACE_UPROBE(nargs), GFP_KERNEL);
> + tu = kzalloc(struct_size(tu, tp.args, nargs), GFP_KERNEL);
> if (!tu)
> return ERR_PTR(-ENOMEM);
>
> --
> 2.30.2
--
Masami Hiramatsu <mhiramat@kernel.org>
next prev parent reply other threads:[~2021-08-18 11:09 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-08-17 3:42 [PATCH v6 0/7] tracing: Creation of event probe Steven Rostedt
2021-08-17 3:42 ` [PATCH v6 1/7] tracing: Add DYNAMIC flag for dynamic events Steven Rostedt
2021-08-18 8:15 ` Masami Hiramatsu
2021-08-17 3:42 ` [PATCH v6 2/7] tracing: Have dynamic events have a ref counter Steven Rostedt
2021-08-18 16:14 ` Masami Hiramatsu
2021-08-17 3:42 ` [PATCH v6 3/7] tracing/probe: Have traceprobe_parse_probe_arg() take a const arg Steven Rostedt
2021-08-18 16:16 ` Masami Hiramatsu
2021-08-17 3:42 ` [PATCH v6 4/7] tracing/probes: Allow for dot delimiter as well as slash for system names Steven Rostedt
2021-08-18 10:57 ` Masami Hiramatsu
2021-08-17 3:43 ` [PATCH v6 5/7] tracing/probes: Use struct_size() instead of defining custom macros Steven Rostedt
2021-08-18 11:08 ` Masami Hiramatsu [this message]
2021-08-17 3:43 ` [PATCH v6 6/7] tracing/probe: Change traceprobe_set_print_fmt() to take a type Steven Rostedt
2021-08-18 16:19 ` Masami Hiramatsu
2021-08-17 3:43 ` [PATCH v6 7/7] tracing: Add a probe that attaches to trace events Steven Rostedt
2021-08-19 2:29 ` Masami Hiramatsu
2021-08-19 3:37 ` Steven Rostedt
2021-08-19 3:56 ` Masami Hiramatsu
2021-08-19 4:03 ` Steven Rostedt
2021-08-19 4:10 ` Steven Rostedt
2021-08-19 4:28 ` Masami Hiramatsu
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=20210818200851.954e5030a64eb11ee156fa78@kernel.org \
--to=mhiramat@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-trace-devel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=rostedt@goodmis.org \
--cc=tz.stoyanov@gmail.com \
--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.