Commit 6022afc0 authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390: make sie intercept independent of thread_info



HANDLE_SIE_INTERCEPT is called early, use supervisor state and
instruction address to decide if the reset of the PSW to sie_loop
is required.

Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent b603d258
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -81,16 +81,16 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING)

	.macro	HANDLE_SIE_INTERCEPT scratch
#if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
	tm	__TI_flags+6(%r12),_TIF_SIE>>8
	jz	.+42
	tm	__LC_MACHINE_FLAGS+6,0x20	# MACHINE_FLAG_SPP
	jz	.+8
	.insn	s,0xb2800000,BASED(.Lhost_id)	# set host id
	tmhh	%r8,0x0001		# interrupting from user ?
	jnz	.+42
	lgr	\scratch,%r9
	slg	\scratch,BASED(.Lsie_loop)
	clg	\scratch,BASED(.Lsie_length)
	jhe	.+10
	jhe	.+22
	lg	%r9,BASED(.Lsie_loop)
	tm	__LC_MACHINE_FLAGS+6,0x20	# MACHINE_FLAG_SPP
	jz	.+8
	.insn	s,0xb2800000,BASED(.Lhost_id)	# set host id
#endif
	.endm