diff options
author | Chris Metcalf <cmetcalf@ezchip.com> | 2015-05-04 23:26:35 +0200 |
---|---|---|
committer | Chris Metcalf <cmetcalf@ezchip.com> | 2015-05-11 17:22:31 +0200 |
commit | e5701b74ccfdbbb0b4d9abcc7d0c569bf5e5375b (patch) | |
tree | 12fd2d5402bea262d4a191504f3ad25b5263ae3a /arch/tile/kernel/traps.c | |
parent | drivers/tty/hvc/hvc_tile.c: properly return -EAGAIN (diff) | |
download | linux-e5701b74ccfdbbb0b4d9abcc7d0c569bf5e5375b.tar.xz linux-e5701b74ccfdbbb0b4d9abcc7d0c569bf5e5375b.zip |
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.c | 12 |
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: exception_exit(prev_state); } +void do_nmi(struct pt_regs *regs, int fault_num, unsigned long reason) +{ + switch (reason) { + case TILE_NMI_DUMP_STACK: + do_nmi_dump_stack(regs); + break; + default: + panic("Unexpected do_nmi type %ld", reason); + return; + } +} + void kernel_double_fault(int dummy, ulong pc, ulong lr, ulong sp, ulong r52) { _dump_stack(dummy, pc, lr, sp, r52); |