There's a bunch of problems we hit bringing up fwnmi sreset and testing with mce injection on QEMU. Mostly pseries issues.
This series of fixes applies on top of next-test, the machine check reconcile patch won't apply cleanly to previous kernels but it might want to be backported. We can do that after upstreaming. This doesn't solve all known problems yet, but fwnmi machine check and system reset injection in QEMU is significantly better. There will be more to come but these should be ready for review now. Thanks, Nick v2: - Added a couple more fixes - Review comments and tags - Re-tested with some fixes to my qemu machine check injection patches Nicholas Piggin (14): powerpc/64s/exception: Fix machine check no-loss idle wakeup powerpc/64s/exceptions: Fix in_mce accounting in unrecoverable path powerpc/64s/exceptions: Change irq reconcile for NMIs from reusing _DAR to RESULT powerpc/64s/exceptions: machine check reconcile irq state powerpc/pseries/ras: avoid calling rtas_token in NMI paths powerpc/pseries/ras: FWNMI_VALID off by one powerpc/pseries/ras: fwnmi avoid modifying r3 in error case powerpc/pseries/ras: fwnmi sreset should not interlock powerpc/pseries: limit machine check stack to 4GB powerpc/pseries: machine check use rtas_call_unlocked with args on stack powerpc/64s: machine check interrupt update NMI accounting powerpc/64s: machine check do not trace real-mode handler powerpc/64s: system reset do not trace powerpc: make unrecoverable NMIs die instead of panic arch/powerpc/include/asm/firmware.h | 1 + arch/powerpc/kernel/exceptions-64s.S | 47 ++++++++++++++----- arch/powerpc/kernel/mce.c | 13 +++++- arch/powerpc/kernel/process.c | 2 +- arch/powerpc/kernel/setup_64.c | 17 ++++++- arch/powerpc/kernel/traps.c | 24 ++++------ arch/powerpc/platforms/pseries/ras.c | 62 +++++++++++++++++++------- arch/powerpc/platforms/pseries/setup.c | 13 ++++-- 8 files changed, 131 insertions(+), 48 deletions(-) -- 2.23.0