diff options
Diffstat (limited to 'arch/s390/kernel/swsusp.S')
| -rw-r--r-- | arch/s390/kernel/swsusp.S | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/arch/s390/kernel/swsusp.S b/arch/s390/kernel/swsusp.S index e99187149f17..a049a7b9d6e8 100644 --- a/arch/s390/kernel/swsusp.S +++ b/arch/s390/kernel/swsusp.S @@ -13,6 +13,7 @@  #include <asm/ptrace.h>  #include <asm/thread_info.h>  #include <asm/asm-offsets.h> +#include <asm/nospec-insn.h>  #include <asm/sigp.h>  /* @@ -24,6 +25,8 @@   * (see below) in the resume process.   * This function runs with disabled interrupts.   */ +	GEN_BR_THUNK %r14 +  	.section .text  ENTRY(swsusp_arch_suspend)  	stmg	%r6,%r15,__SF_GPRS(%r15) @@ -103,7 +106,7 @@ ENTRY(swsusp_arch_suspend)  	spx	0x318(%r1)  	lmg	%r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)  	lghi	%r2,0 -	br	%r14 +	BR_EX	%r14  /*   * Restore saved memory image to correct place and restore register context. @@ -197,11 +200,10 @@ pgm_check_entry:  	larl	%r15,init_thread_union  	ahi	%r15,1<<(PAGE_SHIFT+THREAD_SIZE_ORDER)  	larl	%r2,.Lpanic_string -	larl	%r3,sclp_early_printk  	lghi	%r1,0  	sam31  	sigp	%r1,%r0,SIGP_SET_ARCHITECTURE -	basr	%r14,%r3 +	brasl	%r14,sclp_early_printk  	larl	%r3,.Ldisabled_wait_31  	lpsw	0(%r3)  4: @@ -267,7 +269,7 @@ restore_registers:  	/* Return 0 */  	lmg	%r6,%r15,STACK_FRAME_OVERHEAD + __SF_GPRS(%r15)  	lghi	%r2,0 -	br	%r14 +	BR_EX	%r14  	.section .data..nosave,"aw",@progbits  	.align	8 |