aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/ftrace.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/kernel/ftrace.c')
-rw-r--r--arch/s390/kernel/ftrace.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/s390/kernel/ftrace.c b/arch/s390/kernel/ftrace.c
index 39b13d71a8fe..1bb85f60c0dd 100644
--- a/arch/s390/kernel/ftrace.c
+++ b/arch/s390/kernel/ftrace.c
@@ -201,17 +201,18 @@ device_initcall(ftrace_plt_init);
201 * Hook the return address and push it in the stack of return addresses 201 * Hook the return address and push it in the stack of return addresses
202 * in current thread info. 202 * in current thread info.
203 */ 203 */
204unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip) 204unsigned long prepare_ftrace_return(unsigned long ra, unsigned long sp,
205 unsigned long ip)
205{ 206{
206 if (unlikely(ftrace_graph_is_dead())) 207 if (unlikely(ftrace_graph_is_dead()))
207 goto out; 208 goto out;
208 if (unlikely(atomic_read(&current->tracing_graph_pause))) 209 if (unlikely(atomic_read(&current->tracing_graph_pause)))
209 goto out; 210 goto out;
210 ip -= MCOUNT_INSN_SIZE; 211 ip -= MCOUNT_INSN_SIZE;
211 if (!function_graph_enter(parent, ip, 0, NULL)) 212 if (!function_graph_enter(ra, ip, 0, (void *) sp))
212 parent = (unsigned long) return_to_handler; 213 ra = (unsigned long) return_to_handler;
213out: 214out:
214 return parent; 215 return ra;
215} 216}
216NOKPROBE_SYMBOL(prepare_ftrace_return); 217NOKPROBE_SYMBOL(prepare_ftrace_return);
217 218