diff options
| author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-07-15 04:41:37 -0400 |
|---|---|---|
| committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-07-16 04:48:12 -0400 |
| commit | 9f86745722d95bc7f855069bd82285bd10dc97ff (patch) | |
| tree | 83d3dade5bdf6f4dfcd9cb5f957d41aa1800bdb1 | |
| parent | 666e68e0dde826ae146b980099f1719f74fa968c (diff) | |
s390: fix restore of invalid floating-point-control
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>
| -rw-r--r-- | arch/s390/include/asm/switch_to.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/s390/include/asm/switch_to.h b/arch/s390/include/asm/switch_to.h index df38c70cd59e..18ea9e3f8142 100644 --- a/arch/s390/include/asm/switch_to.h +++ b/arch/s390/include/asm/switch_to.h | |||
| @@ -51,8 +51,8 @@ static inline int restore_fp_ctl(u32 *fpc) | |||
| 51 | return 0; | 51 | return 0; |
| 52 | 52 | ||
| 53 | asm volatile( | 53 | asm volatile( |
| 54 | "0: lfpc %1\n" | 54 | " lfpc %1\n" |
| 55 | " la %0,0\n" | 55 | "0: la %0,0\n" |
| 56 | "1:\n" | 56 | "1:\n" |
| 57 | EX_TABLE(0b,1b) | 57 | EX_TABLE(0b,1b) |
| 58 | : "=d" (rc) : "Q" (*fpc), "0" (-EINVAL)); | 58 | : "=d" (rc) : "Q" (*fpc), "0" (-EINVAL)); |
