aboutsummaryrefslogtreecommitdiffstats
path: root/arch/tile/kernel/traps.c
diff options
context:
space:
mode:
authorChris Metcalf <cmetcalf@ezchip.com>2015-05-04 17:26:35 -0400
committerChris Metcalf <cmetcalf@ezchip.com>2015-05-11 11:22:31 -0400
commite5701b74ccfdbbb0b4d9abcc7d0c569bf5e5375b (patch)
tree12fd2d5402bea262d4a191504f3ad25b5263ae3a /arch/tile/kernel/traps.c
parentb4287df82991ca608f44d7ac12ad9b3bc39d5baa (diff)
tile: support delivering NMIs for multicore backtrace
A new hypervisor service was added some time ago (MDE 4.2.1 or later, or MDE 4.3 or later) that allows cores to request NMIs to be delivered to other cores. Use this facility to deliver a request that causes a backtrace to be generated on each core, and hook it into the magic SysRq functionality. Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
Diffstat (limited to 'arch/tile/kernel/traps.c')
-rw-r--r--arch/tile/kernel/traps.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/arch/tile/kernel/traps.c b/arch/tile/kernel/traps.c
index 312fc134c1cb..855f7316f1ee 100644
--- a/arch/tile/kernel/traps.c
+++ b/arch/tile/kernel/traps.c
@@ -395,6 +395,18 @@ done:
395 exception_exit(prev_state); 395 exception_exit(prev_state);
396} 396}
397 397
398void do_nmi(struct pt_regs *regs, int fault_num, unsigned long reason)
399{
400 switch (reason) {
401 case TILE_NMI_DUMP_STACK:
402 do_nmi_dump_stack(regs);
403 break;
404 default:
405 panic("Unexpected do_nmi type %ld", reason);
406 return;
407 }
408}
409
398void kernel_double_fault(int dummy, ulong pc, ulong lr, ulong sp, ulong r52) 410void kernel_double_fault(int dummy, ulong pc, ulong lr, ulong sp, ulong r52)
399{ 411{
400 _dump_stack(dummy, pc, lr, sp, r52); 412 _dump_stack(dummy, pc, lr, sp, r52);