Skip to content

Commit a87532c

Browse files
committed
parisc: function_graph: Simplify with function_graph_enter()
The function_graph_enter() function does the work of calling the function graph hook function and the management of the shadow stack, simplifying the work done in the architecture dependent prepare_ftrace_return(). Have parisc use the new code, and remove the shadow stack management as well as having to set up the trace structure. This is needed to prepare for a fix of a design bug on how the curr_ret_stack is used. Cc: "James E.J. Bottomley" <jejb@parisc-linux.org> Cc: Helge Deller <deller@gmx.de> Cc: linux-parisc@vger.kernel.org Cc: stable@kernel.org Fixes: 03274a3 ("tracing/fgraph: Adjust fgraph depth before calling trace return callback") Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
1 parent d48ebb2 commit a87532c

File tree

1 file changed

+3
-14
lines changed

1 file changed

+3
-14
lines changed

arch/parisc/kernel/ftrace.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ static void __hot prepare_ftrace_return(unsigned long *parent,
3030
unsigned long self_addr)
3131
{
3232
unsigned long old;
33-
struct ftrace_graph_ent trace;
3433
extern int parisc_return_to_handler;
3534

3635
if (unlikely(ftrace_graph_is_dead()))
@@ -41,19 +40,9 @@ static void __hot prepare_ftrace_return(unsigned long *parent,
4140

4241
old = *parent;
4342

44-
trace.func = self_addr;
45-
trace.depth = current->curr_ret_stack + 1;
46-
47-
/* Only trace if the calling function expects to */
48-
if (!ftrace_graph_entry(&trace))
49-
return;
50-
51-
if (ftrace_push_return_trace(old, self_addr, &trace.depth,
52-
0, NULL) == -EBUSY)
53-
return;
54-
55-
/* activate parisc_return_to_handler() as return point */
56-
*parent = (unsigned long) &parisc_return_to_handler;
43+
if (!function_graph_enter(old, self_addr, 0, NULL))
44+
/* activate parisc_return_to_handler() as return point */
45+
*parent = (unsigned long) &parisc_return_to_handler;
5746
}
5847
#endif /* CONFIG_FUNCTION_GRAPH_TRACER */
5948

0 commit comments

Comments
 (0)