diff options
Diffstat (limited to 'kernel/trace/ftrace.c')
-rw-r--r-- | kernel/trace/ftrace.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c index 08b536a2614e..f72499627525 100644 --- a/kernel/trace/ftrace.c +++ b/kernel/trace/ftrace.c | |||
@@ -1673,8 +1673,10 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list) | |||
1673 | } | 1673 | } |
1674 | 1674 | ||
1675 | if (t->ret_stack == NULL) { | 1675 | if (t->ret_stack == NULL) { |
1676 | t->ret_stack = ret_stack_list[start++]; | ||
1677 | t->curr_ret_stack = -1; | 1676 | t->curr_ret_stack = -1; |
1677 | /* Make sure IRQs see the -1 first: */ | ||
1678 | barrier(); | ||
1679 | t->ret_stack = ret_stack_list[start++]; | ||
1678 | atomic_set(&t->trace_overrun, 0); | 1680 | atomic_set(&t->trace_overrun, 0); |
1679 | } | 1681 | } |
1680 | } while_each_thread(g, t); | 1682 | } while_each_thread(g, t); |