MIPS: Fix crash registers on non-crashing CPUs
authorCorey Minyard <cminyard@mvista.com>
Mon, 11 Apr 2016 14:10:19 +0000 (09:10 -0500)
committerWilly Tarreau <w@1wt.eu>
Tue, 20 Jun 2017 12:04:52 +0000 (14:04 +0200)
commit32b0616ee1b1d3d14c27475257f77f7d719d0f1a
tree9f1571276f2c1817aa0f9a831478c3beb2387f36
parentab93db27afea344e37a1a28f3e067fd4dd5c996e
MIPS: Fix crash registers on non-crashing CPUs

commit c80e1b62ffca52e2d1d865ee58bc79c4c0c55005 upstream.

As part of handling a crash on an SMP system, an IPI is send to
all other CPUs to save their current registers and stop.  It was
using task_pt_regs(current) to get the registers, but that will
only be accurate if the CPU was interrupted running in userland.
Instead allow the architecture to pass in the registers (all
pass NULL now, but allow for the future) and then use get_irq_regs()
which should be accurate as we are in an interrupt.  Fall back to
task_pt_regs(current) if nothing else is available.

Signed-off-by: Corey Minyard <cminyard@mvista.com>
Cc: David Daney <ddaney@caviumnetworks.com>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/13050/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Willy Tarreau <w@1wt.eu>
arch/mips/kernel/crash.c