linux/arch/powerpc
Nicholas Piggin b746e3e01e powerpc/powernv: Flush console before platform error reboot
Unrecovered MCE and HMI errors are sent through a special restart OPAL
call to log the platform error. The downside is that they don't go
through normal Linux crash paths, so they don't give much information
to the Linux console.

Change this by providing a special crash function which does some of
the console flushing from the panic() path before calling firmware to
reboot.

The downside of this is a little more code to execute before reaching
the firmware reboot. However in practice, it's critical to get the
Linux console messages output in order to debug a problem. So this is
a desirable tradeoff.

Note on the implementation: It is difficult to plumb a custom reboot
handler into the panic path, because panic does a little bit too much
work. For example, it will try to delay with the timebase, but that
may be corrupted in some cases resulting in a hang without reaching
the platform reboot. Another problem is that panic can invoke the
crash dump code which is not what we want in the case of a hardware
platform error. Long-term the best solution will be to rework the
panic path so it can be suitable for this kind of panic, but for now
we just duplicate a bit of the code.

Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Mahesh Salgaonkar <mahesh@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
2017-08-31 14:26:03 +10:00
..
boot Merge branch 'fixes' into next 2017-08-23 22:20:10 +10:00
configs powerpc/configs/6xx: Drop removed CONFIG_USB_LED 2017-08-28 22:10:25 +10:00
crypto Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-05-02 15:53:46 -07:00
include powerpc/powernv: Flush console before platform error reboot 2017-08-31 14:26:03 +10:00
kernel powerpc: Do not send system reset request through the oops path 2017-08-31 14:26:02 +10:00
kvm Merge branch 'topic/ppc-kvm' into next 2017-08-29 21:26:30 +10:00
lib powerpc/string: Implement optimized memset variants 2017-08-17 23:04:35 +10:00
math-emu Replace <asm/uaccess.h> with <linux/uaccess.h> globally 2016-12-24 11:46:01 -08:00
mm powerpc/mm: Make switch_mm_irqs_off() out of line 2017-08-23 22:48:51 +10:00
net powerpc/bpf: Use memset32() to pre-fill traps in BPF page(s) 2017-08-17 23:04:47 +10:00
oprofile ktime: Cleanup ktime_set() usage 2016-12-25 17:21:22 +01:00
perf Merge branch 'topic/ppc-kvm' into next 2017-08-17 23:14:17 +10:00
platforms powerpc/powernv: Flush console before platform error reboot 2017-08-31 14:26:03 +10:00
purgatory powerpc: Fix invalid use of register expressions 2017-08-10 22:29:41 +10:00
sysdev powerpc/xive: Fix the size of the cpumask used in xive_find_target_in_mask() 2017-08-24 15:20:18 +10:00
tools powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00
xmon powerpc/xmon: Exclude all of xmon from ftrace 2017-08-15 15:30:17 +10:00
Kconfig powerpc/mm: Implement STRICT_KERNEL_RWX on PPC32 2017-08-15 22:55:57 +10:00
Kconfig.debug powerpc/xmon: Enable disassembly files (compilation changes) 2017-02-15 20:02:42 +11:00
Makefile Merge branch 'fixes' into next 2017-08-23 22:20:10 +10:00
Makefile.postlink powerpc/64: Tool to check head sections location sanity 2017-05-30 14:59:51 +10:00