diff options
author | Dave Kleikamp <dave.kleikamp@oracle.com> | 2015-01-06 18:31:39 -0600 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-01 21:42:57 -0800 |
commit | 94ab5990760a54bb1f0fca99e0d374260cae3b8b (patch) | |
tree | c24586962b38930c843bd6135fb71b64fdc812f2 /arch/sparc/kernel/traps_64.c | |
parent | 8f765b84918de82789c1f7650490e15208cb1eb3 (diff) | |
download | op-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.c | 2 |
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); |