diff options
Diffstat (limited to 'arch/powerpc/kernel/ftrace.c')
-rw-r--r-- | arch/powerpc/kernel/ftrace.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c index 91b46b7f6f0d..1fb78561096a 100644 --- a/arch/powerpc/kernel/ftrace.c +++ b/arch/powerpc/kernel/ftrace.c | |||
@@ -630,18 +630,17 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr) | |||
630 | return; | 630 | return; |
631 | } | 631 | } |
632 | 632 | ||
633 | if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY) { | ||
634 | *parent = old; | ||
635 | return; | ||
636 | } | ||
637 | |||
638 | trace.func = self_addr; | 633 | trace.func = self_addr; |
634 | trace.depth = current->curr_ret_stack + 1; | ||
639 | 635 | ||
640 | /* Only trace if the calling function expects to */ | 636 | /* Only trace if the calling function expects to */ |
641 | if (!ftrace_graph_entry(&trace)) { | 637 | if (!ftrace_graph_entry(&trace)) { |
642 | current->curr_ret_stack--; | ||
643 | *parent = old; | 638 | *parent = old; |
639 | return; | ||
644 | } | 640 | } |
641 | |||
642 | if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY) | ||
643 | *parent = old; | ||
645 | } | 644 | } |
646 | #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ | 645 | #endif /* CONFIG_FUNCTION_GRAPH_TRACER */ |
647 | 646 | ||