提交 6022afc0 编写于 作者: M Martin Schwidefsky

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: NMartin Schwidefsky <schwidefsky@de.ibm.com>
上级 b603d258
...@@ -81,16 +81,16 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING) ...@@ -81,16 +81,16 @@ _TIF_EXIT_SIE = (_TIF_SIGPENDING | _TIF_NEED_RESCHED | _TIF_MCCK_PENDING)
.macro HANDLE_SIE_INTERCEPT scratch .macro HANDLE_SIE_INTERCEPT scratch
#if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE) #if defined(CONFIG_KVM) || defined(CONFIG_KVM_MODULE)
tm __TI_flags+6(%r12),_TIF_SIE>>8 tmhh %r8,0x0001 # interrupting from user ?
jz .+42 jnz .+42
tm __LC_MACHINE_FLAGS+6,0x20 # MACHINE_FLAG_SPP
jz .+8
.insn s,0xb2800000,BASED(.Lhost_id) # set host id
lgr \scratch,%r9 lgr \scratch,%r9
slg \scratch,BASED(.Lsie_loop) slg \scratch,BASED(.Lsie_loop)
clg \scratch,BASED(.Lsie_length) clg \scratch,BASED(.Lsie_length)
jhe .+10 jhe .+22
lg %r9,BASED(.Lsie_loop) 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 #endif
.endm .endm
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册