···6565void __init time_init(void);6666int pfn_is_nosave(unsigned long);6767void s390_early_resume(void);6868-unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip);6868+unsigned long prepare_ftrace_return(unsigned long parent, unsigned long sp, unsigned long ip);69697070struct s390_mmap_arg_struct;7171struct fadvise64_64_args;
+5-4
arch/s390/kernel/ftrace.c
···201201 * Hook the return address and push it in the stack of return addresses202202 * in current thread info.203203 */204204-unsigned long prepare_ftrace_return(unsigned long parent, unsigned long ip)204204+unsigned long prepare_ftrace_return(unsigned long ra, unsigned long sp,205205+ unsigned long ip)205206{206207 if (unlikely(ftrace_graph_is_dead()))207208 goto out;208209 if (unlikely(atomic_read(¤t->tracing_graph_pause)))209210 goto out;210211 ip -= MCOUNT_INSN_SIZE;211211- if (!function_graph_enter(parent, ip, 0, NULL))212212- parent = (unsigned long) return_to_handler;212212+ if (!function_graph_enter(ra, ip, 0, (void *) sp))213213+ ra = (unsigned long) return_to_handler;213214out:214214- return parent;215215+ return ra;215216}216217NOKPROBE_SYMBOL(prepare_ftrace_return);217218
+2-2
arch/s390/kernel/mcount.S
···6565 .globl ftrace_graph_caller6666ftrace_graph_caller:6767 j ftrace_graph_caller_end6868- lg %r2,(STACK_PTREGS_GPRS+14*8)(%r15)6969- lg %r3,(STACK_PTREGS_PSW+8)(%r15)6868+ lmg %r2,%r3,(STACK_PTREGS_GPRS+14*8)(%r15)6969+ lg %r4,(STACK_PTREGS_PSW+8)(%r15)7070 brasl %r14,prepare_ftrace_return7171 stg %r2,(STACK_PTREGS_GPRS+14*8)(%r15)7272ftrace_graph_caller_end:
+1-1
arch/s390/kernel/unwind_bc.c
···8484 /* Decode any ftrace redirection */8585 if (ip == (unsigned long) return_to_handler)8686 ip = ftrace_graph_ret_addr(state->task, &state->graph_idx,8787- ip, NULL);8787+ ip, (void *) sp);8888#endif89899090 /* Update unwind state */