MIPS: Fix crash registers on non-crashing CPUs
authorCorey Minyard <cminyard@mvista.com>
Mon, 11 Apr 2016 14:10:19 +0000 (09:10 -0500)
committerJiri Slaby <jslaby@suse.cz>
Tue, 9 May 2017 06:19:51 +0000 (08:19 +0200)
commita2c54e187e64b883e156fcf5a93e4c8b304227db
treea76981f49d95d8cb23ca5d5b807d94b2bd16a9ca
parent204c56d845fcec43176160f831b86444d745cf67
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>
arch/mips/kernel/crash.c