diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-11-30 06:16:21 +0100 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-10 11:39:51 +0100 |
commit | a2c1e064c45f5126625121f58afa423e13c55efc (patch) | |
tree | b895fdd8f89396e05bfab134f3f9e4b18a44f055 /arch/sparc64 | |
parent | [SPARC64]: Unaligned accesses to userspace are hard errors. (diff) | |
download | linux-a2c1e064c45f5126625121f58afa423e13c55efc.tar.xz linux-a2c1e064c45f5126625121f58afa423e13c55efc.zip |
[SPARC64]: Run ctrl-alt-del action for sun4v powerdown request.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/traps.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/arch/sparc64/kernel/traps.c b/arch/sparc64/kernel/traps.c index ec7a60142bec..ad67784292db 100644 --- a/arch/sparc64/kernel/traps.c +++ b/arch/sparc64/kernel/traps.c @@ -10,7 +10,7 @@ */ #include <linux/module.h> -#include <linux/sched.h> /* for jiffies */ +#include <linux/sched.h> #include <linux/kernel.h> #include <linux/kallsyms.h> #include <linux/signal.h> @@ -1873,6 +1873,16 @@ void sun4v_resum_error(struct pt_regs *regs, unsigned long offset) put_cpu(); + if (ent->err_type == SUN4V_ERR_TYPE_WARNING_RES) { + /* If err_type is 0x4, it's a powerdown request. Do + * not do the usual resumable error log because that + * makes it look like some abnormal error. + */ + printk(KERN_INFO "Power down request...\n"); + kill_cad_pid(SIGINT, 1); + return; + } + sun4v_log_error(regs, &local_copy, cpu, KERN_ERR "RESUMABLE ERROR", &sun4v_resum_oflow_cnt); |