From ae6aa2ea8973e200cb3d0564a64a1b441d233428 Mon Sep 17 00:00:00 2001 From: Martin Schwidefsky Date: Sat, 3 Sep 2005 15:57:56 -0700 Subject: [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/s390/s390mach.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/s390/s390mach.c') diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c index 5bb255e02ac..4191fd9d4d1 100644 --- a/drivers/s390/s390mach.c +++ b/drivers/s390/s390mach.c @@ -240,7 +240,7 @@ s390_revalidate_registers(struct mci *mci) * Floating point control register can't be restored. * Task will be terminated. */ - asm volatile ("lfpc 0(%0)" : : "a" (&zero)); + asm volatile ("lfpc 0(%0)" : : "a" (&zero), "m" (zero)); kill_task = 1; } -- cgit v1.2.3-70-g09d2