Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −6
Original line number Diff line number Diff line
@@ -54,12 +54,8 @@ void s390_handle_mcck(void)
	 */
	local_irq_save(flags);
	local_mcck_disable();
	/*
	 * Ummm... Does this make sense at all? Copying the percpu struct
	 * and then zapping it one statement later?
	 */
	memcpy(&mcck, this_cpu_ptr(&cpu_mcck), sizeof(mcck));
	memset(&mcck, 0, sizeof(struct mcck_struct));
	mcck = *this_cpu_ptr(&cpu_mcck);
	memset(this_cpu_ptr(&cpu_mcck), 0, sizeof(mcck));
	clear_cpu_flag(CIF_MCCK_PENDING);
	local_mcck_enable();
	local_irq_restore(flags);