summaryrefslogtreecommitdiffstats
path: root/kernel/trace/ftrace.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-12-03 08:49:21 +0100
committerIngo Molnar <mingo@elte.hu>2008-12-03 08:49:21 +0100
commitf0461d0146ee30927bc7efa2ae24ea8c6693b725 (patch)
tree6a6b416c76c0e1a569af5531454fb45fe06e07ba /kernel/trace/ftrace.c
parentfunction trace: fix a bug of single thread function trace (diff)
parenttracing/function-graph-tracer: support for x86-64 (diff)
downloadlinux-f0461d0146ee30927bc7efa2ae24ea8c6693b725.tar.xz
linux-f0461d0146ee30927bc7efa2ae24ea8c6693b725.zip
Merge branches 'tracing/ftrace' and 'tracing/function-graph-tracer' into tracing/core
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r--kernel/trace/ftrace.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
index 6d89ab46c6e3..2e78628443e8 100644
--- a/kernel/trace/ftrace.c
+++ b/kernel/trace/ftrace.c
@@ -1671,8 +1671,10 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
}
if (t->ret_stack == NULL) {
- t->ret_stack = ret_stack_list[start++];
t->curr_ret_stack = -1;
+ /* Make sure IRQs see the -1 first: */
+ barrier();
+ t->ret_stack = ret_stack_list[start++];
atomic_set(&t->trace_overrun, 0);
}
} while_each_thread(g, t);