Skip to content

Commit 6ec6bd8

Browse files
npiggingregkh
authored andcommitted
powerpc: System reset avoid interleaving oops using die synchronisation
[ Upstream commit 4552d12 ] The die() oops path contains a serializing lock to prevent oops messages from being interleaved. In the case of a system reset initiated oops (e.g., qemu nmi command), __die was being called which lacks that synchronisation and oops reports could be interleaved across CPUs. A recent patch 4388c9b ("powerpc: Do not send system reset request through the oops path") changed this to __die to avoid the debugger() call, but there is no real harm to calling it twice if the first time fell through. So go back to using die() here. This was observed to fix the problem. Fixes: 4388c9b ("powerpc: Do not send system reset request through the oops path") Signed-off-by: Nicholas Piggin <[email protected]> Reviewed-by: David Gibson <[email protected]> Signed-off-by: Michael Ellerman <[email protected]> Signed-off-by: Sasha Levin <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent bc5fddf commit 6ec6bd8

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

arch/powerpc/kernel/traps.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -336,7 +336,7 @@ void system_reset_exception(struct pt_regs *regs)
336336
* No debugger or crash dump registered, print logs then
337337
* panic.
338338
*/
339-
__die("System Reset", regs, SIGABRT);
339+
die("System Reset", regs, SIGABRT);
340340

341341
mdelay(2*MSEC_PER_SEC); /* Wait a little while for others to print */
342342
add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);

0 commit comments

Comments
 (0)