This series is the combined outstanding series posted previously, plus a change to a new way to define parameters for interrupt code generation macros (which is a bit clunky but works better than alternatives).
This is mostly the end result. There is still a few minor things that could be done, and possibly we could add a "standard form" macro for well behaved handlers that don't require any custom code, which blats out everything (the real and virt vectors, KVM handler, and common handler stuff) in one line after the definition block. But that's not really important now. After this we can start on actually improving the generated code. Thanks, Nick Nicholas Piggin (44): powerpc/64s/exception: machine check fwnmi remove HV case powerpc/64s/exception: machine check remove bitrotted comment powerpc/64s/exception: machine check fix KVM guest test powerpc/64s/exception: machine check adjust RFI target powerpc/64s/exception: machine check pseries should always run the early handler powerpc/64s/exception: machine check remove machine_check_pSeries_0 branch powerpc/64s/exception: machine check use correct cfar for late handler powerpc/64s/powernv: machine check dump SLB contents powerpc/64s/pseries: machine check convert to use common event code powerpc/64s/exception: machine check pseries should skip the late handler for kernel MCEs powerpc/64s/exception: machine check restructure to reuse common macros powerpc/64s/exception: machine check move tramp code powerpc/64s/exception: simplify machine check early path powerpc/64s/exception: machine check move unrecoverable handling out of line powerpc/64s/exception: untangle early machine check handler branch powerpc/64s/exception: machine check improve labels and comments powerpc/64s/exception: Fix DAR load for handle_page_fault error case powerpc/64s/exception: move head-64.h exception code to exception-64s.S powerpc/64s/exception: Add EXC_HV_OR_STD, which selects HSRR if HVMODE powerpc/64s/exception: Fix performance monitor virt handler powerpc/64s/exception: remove 0xb00 handler powerpc/64s/exception: Replace PROLOG macros and EXC helpers with a gas macro powerpc/64s/exception: remove EXCEPTION_PROLOG_0/1, rename _2 powerpc/64s/exception: Add the virt variant of the denorm interrupt handler powerpc/64s/exception: INT_HANDLER support HDAR/HDSISR and use it in HDSI powerpc/64s/exception: Add INT_KVM_HANDLER gas macro powerpc/64s/exception: KVM_HANDLER reorder arguments to match other macros powerpc/64s/exception: Merge EXCEPTION_PROLOG_COMMON_2/3 powerpc/64s/exception: Add INT_COMMON gas macro to generate common exception code powerpc/64s/exception: Expand EXCEPTION_COMMON macro into caller powerpc/64s/exception: Expand EXCEPTION_PROLOG_COMMON_1 and 2 into caller powerpc/64s/exception: INT_COMMON add DAR, DSISR, reconcile options powerpc/64s/exception: move interrupt entry code above the common handler powerpc/64s/exception: program check handler do not branch into a macro powerpc/64s/exception: Remove pointless KVM handler name bifurcation powerpc/64s/exception: reduce page fault unnecessary loads powerpc/64s/exception: Introduce INT_DEFINE parameter block for code generation powerpc/64s/exception: Add GEN_COMMON macro that uses INT_DEFINE parameters powerpc/64s/exception: Add GEN_KVM macro that uses INT_DEFINE parameters powerpc/64s/exception: Expand EXC_COMMON and EXC_COMMON_ASYNC macros powerpc/64s/exception: Move all interrupt handlers to new style code gen macros powerpc/64s/exception: Remove old INT_ENTRY macro powerpc/64s/exception: Remove old INT_COMMON macro powerpc/64s/exception: Remove old INT_KVM_HANDLER arch/powerpc/include/asm/head-64.h | 41 - arch/powerpc/include/asm/mce.h | 6 + arch/powerpc/kernel/exceptions-64s.S | 2242 ++++++++++++++---------- arch/powerpc/kernel/mce.c | 40 +- arch/powerpc/kernel/mce_power.c | 4 + arch/powerpc/mm/book3s64/hash_utils.c | 4 +- arch/powerpc/platforms/powernv/setup.c | 9 + arch/powerpc/platforms/pseries/ras.c | 457 ++--- arch/powerpc/platforms/pseries/setup.c | 24 +- 9 files changed, 1600 insertions(+), 1227 deletions(-) -- 2.22.0