summaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/traps_64.c
diff options
context:
space:
mode:
authorDave Kleikamp <dave.kleikamp@oracle.com>2015-01-07 01:31:39 +0100
committerDavid S. Miller <davem@davemloft.net>2015-03-02 06:42:57 +0100
commit94ab5990760a54bb1f0fca99e0d374260cae3b8b (patch)
treec24586962b38930c843bd6135fb71b64fdc812f2 /arch/sparc/kernel/traps_64.c
parentarch: sparc: kernel: starfire.c: Remove unused function (diff)
downloadlinux-94ab5990760a54bb1f0fca99e0d374260cae3b8b.tar.xz
linux-94ab5990760a54bb1f0fca99e0d374260cae3b8b.zip
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 1ef1af4cf96b..0e699745d643 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);