diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2005-09-03 18:57:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@evo.osdl.org> | 2005-09-05 03:06:25 -0400 |
commit | ae6aa2ea8973e200cb3d0564a64a1b441d233428 (patch) | |
tree | 2bd12e22134b4f087c2179af0a304ca6dd9ca585 /drivers | |
parent | 4c139862b8831261d57de02716b92f82e5fb463b (diff) |
[PATCH] s390: machine check handler bugs
The new machine check handler still has a few bugs.
1) The system entry time has to be stored in the machine check handler,
2) the machine check return psw may not be stored at the usual place
because it might overwrite the return psw of the interrupted context,
3) the return address for the call to s390_handle_mcck in the i/o interrupt
handler is not correct,
4) the system call cleanup has to take the different save area of the
machine check handler into account,
5) the machine check handler may not call UPDATE_VTIME before
CREATE_STACK_FRAME, and
6) the io leave path needs a critical section cleanup to make sure that the
TIF_MCCK_PENDING bit is really checked before switching back to user space.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/s390/s390mach.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c index 5bb255e02acc..4191fd9d4d11 100644 --- a/drivers/s390/s390mach.c +++ b/drivers/s390/s390mach.c | |||
@@ -240,7 +240,7 @@ s390_revalidate_registers(struct mci *mci) | |||
240 | * Floating point control register can't be restored. | 240 | * Floating point control register can't be restored. |
241 | * Task will be terminated. | 241 | * Task will be terminated. |
242 | */ | 242 | */ |
243 | asm volatile ("lfpc 0(%0)" : : "a" (&zero)); | 243 | asm volatile ("lfpc 0(%0)" : : "a" (&zero), "m" (zero)); |
244 | kill_task = 1; | 244 | kill_task = 1; |
245 | 245 | ||
246 | } | 246 | } |