|
@@ -203,22 +203,13 @@ device_initcall(ftrace_plt_init);
|
|
|
*/
|
|
|
unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip)
|
|
|
{
|
|
|
- struct ftrace_graph_ent trace;
|
|
|
-
|
|
|
if (unlikely(ftrace_graph_is_dead()))
|
|
|
goto out;
|
|
|
if (unlikely(atomic_read(¤t->tracing_graph_pause)))
|
|
|
goto out;
|
|
|
ip -= MCOUNT_INSN_SIZE;
|
|
|
- trace.func = ip;
|
|
|
- trace.depth = current->curr_ret_stack + 1;
|
|
|
- /* Only trace if the calling function expects to. */
|
|
|
- if (!ftrace_graph_entry(&trace))
|
|
|
- goto out;
|
|
|
- if (ftrace_push_return_trace(parent, ip, &trace.depth, 0,
|
|
|
- NULL) == -EBUSY)
|
|
|
- goto out;
|
|
|
- parent = (unsigned long) return_to_handler;
|
|
|
+ if (!function_graph_enter(parent, ip, 0, NULL))
|
|
|
+ parent = (unsigned long) return_to_handler;
|
|
|
out:
|
|
|
return parent;
|
|
|
}
|