summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--kernel/trace/trace_functions_graph.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
index 7008d2e13cf2..39ada66389cc 100644
--- a/kernel/trace/trace_functions_graph.c
+++ b/kernel/trace/trace_functions_graph.c
@@ -191,10 +191,16 @@ unsigned long ftrace_return_to_handler(unsigned long frame_pointer)
191 191
192 ftrace_pop_return_trace(&trace, &ret, frame_pointer); 192 ftrace_pop_return_trace(&trace, &ret, frame_pointer);
193 trace.rettime = trace_clock_local(); 193 trace.rettime = trace_clock_local();
194 ftrace_graph_return(&trace);
195 barrier(); 194 barrier();
196 current->curr_ret_stack--; 195 current->curr_ret_stack--;
197 196
197 /*
198 * The trace should run after decrementing the ret counter
199 * in case an interrupt were to come in. We don't want to
200 * lose the interrupt if max_depth is set.
201 */
202 ftrace_graph_return(&trace);
203
198 if (unlikely(!ret)) { 204 if (unlikely(!ret)) {
199 ftrace_graph_stop(); 205 ftrace_graph_stop();
200 WARN_ON(1); 206 WARN_ON(1);