summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/traps_64.c
diff options
context:
space:
mode:
authorDave Kleikamp <dave.kleikamp@oracle.com>2015-01-06 18:31:39 -0600
committerDavid S. Miller <davem@davemloft.net>2015-03-01 21:42:57 -0800
commit94ab5990760a54bb1f0fca99e0d374260cae3b8b (patch)
treec24586962b38930c843bd6135fb71b64fdc812f2 /arch/sparc/kernel/traps_64.c
parent8f765b84918de82789c1f7650490e15208cb1eb3 (diff)
downloadop-kernel-dev-94ab5990760a54bb1f0fca99e0d374260cae3b8b.zip
op-kernel-dev-94ab5990760a54bb1f0fca99e0d374260cae3b8b.tar.gz
sparc64: fatal trap should stop all cpus
"echo c > /proc/sysrq-trigger" does not result in a system crash. There are two problems. One is that the trap handler ignores the global variable, panic_on_oops. The other is that smp_send_stop() is a no-op which leaves the other cpus running normally when one cpu panics. Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/traps_64.c')
-rw-r--r--arch/sparc/kernel/traps_64.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
index 1ef1af4..0e69974 100644
--- a/arch/sparc/kernel/traps_64.c
+++ b/arch/sparc/kernel/traps_64.c
@@ -2427,6 +2427,8 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
}
user_instruction_dump ((unsigned int __user *) regs->tpc);
}
+ if (panic_on_oops)
+ panic("Fatal exception");
if (regs->tstate & TSTATE_PRIV)
do_exit(SIGKILL);
do_exit(SIGSEGV);
OpenPOWER on IntegriCloud