diff options
Diffstat (limited to 'arch/s390/kernel/mcount.S')
| -rw-r--r-- | arch/s390/kernel/mcount.S | 14 | 
1 files changed, 9 insertions, 5 deletions
| diff --git a/arch/s390/kernel/mcount.S b/arch/s390/kernel/mcount.S index 82df7d80fab2..27110f3294ed 100644 --- a/arch/s390/kernel/mcount.S +++ b/arch/s390/kernel/mcount.S @@ -9,13 +9,17 @@  #include <linux/linkage.h>  #include <asm/asm-offsets.h>  #include <asm/ftrace.h> +#include <asm/nospec-insn.h>  #include <asm/ptrace.h>  #include <asm/export.h> +	GEN_BR_THUNK %r1 +	GEN_BR_THUNK %r14 +  	.section .kprobes.text, "ax"  ENTRY(ftrace_stub) -	br	%r14 +	BR_EX	%r14  #define STACK_FRAME_SIZE  (STACK_FRAME_OVERHEAD + __PT_SIZE)  #define STACK_PTREGS	  (STACK_FRAME_OVERHEAD) @@ -23,7 +27,7 @@ ENTRY(ftrace_stub)  #define STACK_PTREGS_PSW  (STACK_PTREGS + __PT_PSW)  ENTRY(_mcount) -	br	%r14 +	BR_EX	%r14  EXPORT_SYMBOL(_mcount) @@ -53,7 +57,7 @@ ENTRY(ftrace_caller)  #endif  	lgr	%r3,%r14  	la	%r5,STACK_PTREGS(%r15) -	basr	%r14,%r1 +	BASR_EX	%r14,%r1  #ifdef CONFIG_FUNCTION_GRAPH_TRACER  # The j instruction gets runtime patched to a nop instruction.  # See ftrace_enable_ftrace_graph_caller. @@ -68,7 +72,7 @@ ftrace_graph_caller_end:  #endif  	lg	%r1,(STACK_PTREGS_PSW+8)(%r15)  	lmg	%r2,%r15,(STACK_PTREGS_GPRS+2*8)(%r15) -	br	%r1 +	BR_EX	%r1  #ifdef CONFIG_FUNCTION_GRAPH_TRACER @@ -81,6 +85,6 @@ ENTRY(return_to_handler)  	aghi	%r15,STACK_FRAME_OVERHEAD  	lgr	%r14,%r2  	lmg	%r2,%r5,32(%r15) -	br	%r14 +	BR_EX	%r14  #endif |