Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fix from Martin Schwidefsky: "A fix for a regression in regard to machine check handling in KVM. Keeping my fingers crossed that this is the last s390 fix for v4.14" * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: s390/kvm: fix detection of guest machine checks
This commit is contained in:
@@ -521,12 +521,15 @@ ENTRY(pgm_check_handler)
|
|||||||
tmhh %r8,0x0001 # test problem state bit
|
tmhh %r8,0x0001 # test problem state bit
|
||||||
jnz 2f # -> fault in user space
|
jnz 2f # -> fault in user space
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
#if IS_ENABLED(CONFIG_KVM)
|
||||||
# cleanup critical section for sie64a
|
# cleanup critical section for program checks in sie64a
|
||||||
lgr %r14,%r9
|
lgr %r14,%r9
|
||||||
slg %r14,BASED(.Lsie_critical_start)
|
slg %r14,BASED(.Lsie_critical_start)
|
||||||
clg %r14,BASED(.Lsie_critical_length)
|
clg %r14,BASED(.Lsie_critical_length)
|
||||||
jhe 0f
|
jhe 0f
|
||||||
brasl %r14,.Lcleanup_sie
|
lg %r14,__SF_EMPTY(%r15) # get control block pointer
|
||||||
|
ni __SIE_PROG0C+3(%r14),0xfe # no longer in SIE
|
||||||
|
lctlg %c1,%c1,__LC_USER_ASCE # load primary asce
|
||||||
|
larl %r9,sie_exit # skip forward to sie_exit
|
||||||
#endif
|
#endif
|
||||||
0: tmhh %r8,0x4000 # PER bit set in old PSW ?
|
0: tmhh %r8,0x4000 # PER bit set in old PSW ?
|
||||||
jnz 1f # -> enabled, can't be a double fault
|
jnz 1f # -> enabled, can't be a double fault
|
||||||
|
|||||||
Reference in New Issue
Block a user