]> Pileus Git - ~andy/linux/blobdiff - arch/powerpc/kernel/ftrace.c
Merge branch 'fortglx/3.7/time' of git://git.linaro.org/people/jstultz/linux into...
[~andy/linux] / arch / powerpc / kernel / ftrace.c
index 91b46b7f6f0dd6701c434a6ec1ce9f189645eaf6..1fb78561096accfff7e60062a4fbc0bddfcfec55 100644 (file)
@@ -630,18 +630,17 @@ void prepare_ftrace_return(unsigned long *parent, unsigned long self_addr)
                return;
        }
 
-       if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY) {
-               *parent = old;
-               return;
-       }
-
        trace.func = self_addr;
+       trace.depth = current->curr_ret_stack + 1;
 
        /* Only trace if the calling function expects to */
        if (!ftrace_graph_entry(&trace)) {
-               current->curr_ret_stack--;
                *parent = old;
+               return;
        }
+
+       if (ftrace_push_return_trace(old, self_addr, &trace.depth, 0) == -EBUSY)
+               *parent = old;
 }
 #endif /* CONFIG_FUNCTION_GRAPH_TRACER */