s390/nmi: avoid using long-displacement facility
authorVasily Gorbik <gor@linux.vnet.ibm.com>
Fri, 27 Oct 2017 10:44:48 +0000 (12:44 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Thu, 2 Nov 2017 11:32:46 +0000 (12:32 +0100)
__LC_MCESAD is currently 4528 /* offsetof(struct lowcore, mcesad) */
that would require long-displacement facility for lg, which we don't
have on z900.

Fixes: 3037a52f9846 ("s390/nmi: do register validation as early as possible")
Signed-off-by: Vasily Gorbik <gor@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/entry.S

index 9887d3e..8a0b54e 100644 (file)
@@ -964,7 +964,7 @@ ENTRY(mcck_int_handler)
        la      %r14,4095
        lctlg   %c0,%c15,__LC_CREGS_SAVE_AREA-4095(%r14) # validate ctl regs
        ptlb
-       lg      %r11,__LC_MCESAD        # extended machine check save area
+       lg      %r11,__LC_MCESAD-4095(%r14) # extended machine check save area
        nill    %r11,0xfc00             # MCESA_ORIGIN_MASK
        TSTMSK  __LC_CREGS_SAVE_AREA+16-4095(%r14),CR2_GUARDED_STORAGE
        jno     0f