• Martin Schwidefsky's avatar
    s390/kvm: fix detection of guest machine checks · 0a5e2ec2
    Martin Schwidefsky authored
    The new detection code for guest machine checks added a check based
    on %r11 to .Lcleanup_sie to distinguish between normal asynchronous
    interrupts and machine checks. But the funtion is called from the
    program check handler as well with an undefined value in %r11.
    
    The effect is that all program exceptions pointing to the SIE instruction
    will set the CIF_MCCK_GUEST bit. The bit stays set for the CPU until the
     next machine check comes in which will incorrectly be interpreted as a
    guest machine check.
    
    The simplest fix is to stop using .Lcleanup_sie in the program check
    handler and duplicate a few instructions.
    
    Fixes: c929500d ("s390/nmi: s390: New low level handling for machine check happening in guest")
    Cc: <stable@vger.kernel.org> # v4.13+
    Reviewed-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
    0a5e2ec2
Name
Last commit
Last update
..
alpha Loading commit data...
arc Loading commit data...
arm Loading commit data...
arm64 Loading commit data...
blackfin Loading commit data...
c6x Loading commit data...
cris Loading commit data...
frv Loading commit data...
h8300 Loading commit data...
hexagon Loading commit data...
ia64 Loading commit data...
m32r Loading commit data...
m68k Loading commit data...
metag Loading commit data...
microblaze Loading commit data...
mips Loading commit data...
mn10300 Loading commit data...
nios2 Loading commit data...
openrisc Loading commit data...
parisc Loading commit data...
powerpc Loading commit data...
s390 Loading commit data...
score Loading commit data...
sh Loading commit data...
sparc Loading commit data...
tile Loading commit data...
um Loading commit data...
unicore32 Loading commit data...
x86 Loading commit data...
xtensa Loading commit data...
.gitignore Loading commit data...
Kconfig Loading commit data...