From: Frederic Weisbecker <fweisbec@gmail.com>
To: Lai Jiangshan <laijs@cn.fujitsu.com>
Cc: Steven Rostedt <rostedt@goodmis.org>, Ingo Molnar <mingo@elte.hu>,
LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] tracing: fix invalid function_graph entry
Date: Tue, 28 Jul 2009 17:33:24 +0200 [thread overview]
Message-ID: <20090728153322.GA6215@nowhere> (raw)
In-Reply-To: <4A6EEAEC.3050508@cn.fujitsu.com>
On Tue, Jul 28, 2009 at 08:11:24PM +0800, Lai Jiangshan wrote:
>
> print_graph_entry() consumes current event, if this event
> is the last event in the page, the ring_buffer may reuse
> the page. It will become invalid.
>
> Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
> ---
Queued for .31, thanks Lai!
> diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
> index abf7c4a..02102a3 100644
> --- a/kernel/trace/trace_functions_graph.c
> +++ b/kernel/trace/trace_functions_graph.c
> @@ -835,9 +835,16 @@ print_graph_function(struct trace_iterator *iter)
>
> switch (entry->type) {
> case TRACE_GRAPH_ENT: {
> - struct ftrace_graph_ent_entry *field;
> + /*
> + * print_graph_entry() may consume the current event,
> + * thus @field may become invalid, so we need to save it.
> + * sizeof(struct ftrace_graph_ent_entry) is very small,
> + * it is safely saved at the stack.
> + */
> + struct ftrace_graph_ent_entry *field, saved;
> trace_assign_type(field, entry);
> - return print_graph_entry(field, s, iter);
> + saved = *field;
> + return print_graph_entry(&saved, s, iter);
> }
> case TRACE_GRAPH_RET: {
> struct ftrace_graph_ret_entry *field;
>
next prev parent reply other threads:[~2009-07-28 15:33 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-28 12:11 [PATCH] tracing: fix invalid function_graph entry Lai Jiangshan
2009-07-28 15:33 ` Frederic Weisbecker [this message]
2009-08-04 12:12 ` [tip:tracing/urgent] tracing: Fix " tip-bot for Lai Jiangshan
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=20090728153322.GA6215@nowhere \
--to=fweisbec@gmail.com \
--cc=laijs@cn.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=rostedt@goodmis.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.