]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/nmi: Simplify ptregs setup
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 22 Jul 2024 13:41:11 +0000 (15:41 +0200)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 23 Jul 2024 14:02:31 +0000 (16:02 +0200)
The low level machine check handler code fills the ptregs structure
partially with the register contents present at machine check handler
entry and partially with contents from the machine check save area.

In case of a machine check the contents of all general purpose
registers are saved by the CPU to the machine check save area.
Therefore simplify the code and fill the ptregs structure by only
using the machine check save area as source.

Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/entry.S

index 8caf893d1b591e76a86d0cd098d0ed44310042ef..a72d6494701d9389bc5d36013859bb950d0efedf 100644 (file)
@@ -491,8 +491,8 @@ SYM_CODE_START(mcck_int_handler)
        stctg   %c1,%c1,__PT_CR1(%r11)
        lctlg   %c1,%c1,__LC_KERNEL_ASCE
        xc      __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
-       lghi    %r14,__LC_GPREGS_SAVE_AREA+64
-       stmg    %r0,%r7,__PT_R0(%r11)
+       lghi    %r14,__LC_GPREGS_SAVE_AREA
+       mvc     __PT_R0(128,%r11),0(%r14)
        # clear user controlled registers to prevent speculative use
        xgr     %r0,%r0
        xgr     %r1,%r1
@@ -502,7 +502,6 @@ SYM_CODE_START(mcck_int_handler)
        xgr     %r6,%r6
        xgr     %r7,%r7
        xgr     %r10,%r10
-       mvc     __PT_R8(64,%r11),0(%r14)
        stmg    %r8,%r9,__PT_PSW(%r11)
        xc      __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
        xc      __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)