Commit 2cb4a182 authored by Sebastian Ott's avatar Sebastian Ott Committed by Martin Schwidefsky

s390: fix machine check handling

Commit eb7e7d76 "s390: Replace __get_cpu_var uses" broke machine check
handling.

We copy machine check information from per-cpu to a stack variable for
local processing. Next we should zap the per-cpu variable, not the
stack variable.
Signed-off-by: default avatarSebastian Ott <sebott@linux.vnet.ibm.com>
Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: default avatarChristoph Lameter <cl@linux.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 009d0431
...@@ -54,12 +54,8 @@ void s390_handle_mcck(void) ...@@ -54,12 +54,8 @@ void s390_handle_mcck(void)
*/ */
local_irq_save(flags); local_irq_save(flags);
local_mcck_disable(); local_mcck_disable();
/* mcck = *this_cpu_ptr(&cpu_mcck);
* Ummm... Does this make sense at all? Copying the percpu struct memset(this_cpu_ptr(&cpu_mcck), 0, sizeof(mcck));
* and then zapping it one statement later?
*/
memcpy(&mcck, this_cpu_ptr(&cpu_mcck), sizeof(mcck));
memset(&mcck, 0, sizeof(struct mcck_struct));
clear_cpu_flag(CIF_MCCK_PENDING); clear_cpu_flag(CIF_MCCK_PENDING);
local_mcck_enable(); local_mcck_enable();
local_irq_restore(flags); local_irq_restore(flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment