Messages in this thread | | | Date | Fri, 14 Nov 2008 20:48:40 -0500 (EST) | From | Steven Rostedt <> | Subject | Re: [PATCH] tracing/function-return-tracer: Add a barrier to ensure return stack index is incremented in memory |
| |
On Sat, 15 Nov 2008, Frederic Weisbecker wrote:
> Impact: Fix possible race condition in ftrace function return tracer > > This fixes a possible race condition if index incrementation > is not immediately flushed in memory. > > Thanks for Andi Kleen and Steven Rostedt for pointing out this issue > and give me this solution. > > Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com> > Cc: Steven Rostedt <rostedt@goodmis.org>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
-- Steve
> Cc: Andi Kleen <andi@firstfloor.org> > --- > arch/x86/kernel/ftrace.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c > index fe83273..db25236 100644 > --- a/arch/x86/kernel/ftrace.c > +++ b/arch/x86/kernel/ftrace.c > @@ -56,6 +56,7 @@ static int push_return_trace(unsigned long ret, unsigned long long time, > return -EBUSY; > > index = ++ti->curr_ret_stack; > + barrier(); > ti->ret_stack[index].ret = ret; > ti->ret_stack[index].func = func; > ti->ret_stack[index].calltime = time;
| |