s390: fix restore of invalid floating-point-control
authorMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 15 Jul 2014 08:41:37 +0000 (10:41 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 16 Jul 2014 08:48:12 +0000 (10:48 +0200)
The fixup of the inline assembly to restore the floating-point-control
register needs to check for instruction address *after* the lfcp
instruction as the specification and data exceptions are suppresssing.

Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/switch_to.h

index df38c70..18ea9e3 100644 (file)
@@ -51,8 +51,8 @@ static inline int restore_fp_ctl(u32 *fpc)
                return 0;
 
        asm volatile(
-               "0:     lfpc    %1\n"
-               "       la      %0,0\n"
+               "       lfpc    %1\n"
+               "0:     la      %0,0\n"
                "1:\n"
                EX_TABLE(0b,1b)
                : "=d" (rc) : "Q" (*fpc), "0" (-EINVAL));