diff options
author | Dave Kleikamp <dave.kleikamp@oracle.com> | 2015-01-07 01:31:39 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-03-02 06:42:57 +0100 |
commit | 94ab5990760a54bb1f0fca99e0d374260cae3b8b (patch) | |
tree | c24586962b38930c843bd6135fb71b64fdc812f2 /arch/sparc/kernel/traps_64.c | |
parent | arch: sparc: kernel: starfire.c: Remove unused function (diff) | |
download | linux-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.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 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); |