Since RFC this is rebased on Christophe's v3 ppc32 conversion, and has fixed up small details, and then adds some powerpc-wide cleanups at the end.
Tested on qemu only (QEMU e500), which is not ideal for interrupt handling particularly the critical interrupts which I don't know whether it can generate. Thanks, Nick Nicholas Piggin (10): powerpc/syscall: switch user_exit_irqoff and trace_hardirqs_off order powerpc/64e/interrupt: always save nvgprs on interrupt powerpc/64e/interrupt: use new interrupt return powerpc/64e/interrupt: NMI save irq soft-mask state in C powerpc/64e/interrupt: reconcile irq soft-mask state in C powerpc/64e/interrupt: Use new interrupt context tracking scheme powerpc/64e/interrupt: handle bad_page_fault in C powerpc: clean up do_page_fault powerpc: remove partial register save logic powerpc: move norestart trap flag to bit 0 arch/powerpc/include/asm/asm-prototypes.h | 2 - arch/powerpc/include/asm/bug.h | 4 +- arch/powerpc/include/asm/interrupt.h | 66 ++-- arch/powerpc/include/asm/ptrace.h | 36 +- arch/powerpc/kernel/align.c | 6 - arch/powerpc/kernel/entry_64.S | 40 +- arch/powerpc/kernel/exceptions-64e.S | 425 ++-------------------- arch/powerpc/kernel/interrupt.c | 22 +- arch/powerpc/kernel/irq.c | 76 ---- arch/powerpc/kernel/process.c | 12 - arch/powerpc/kernel/ptrace/ptrace-view.c | 21 -- arch/powerpc/kernel/ptrace/ptrace.c | 2 - arch/powerpc/kernel/ptrace/ptrace32.c | 4 - arch/powerpc/kernel/signal_32.c | 3 - arch/powerpc/kernel/signal_64.c | 2 - arch/powerpc/kernel/traps.c | 14 +- arch/powerpc/lib/sstep.c | 4 - arch/powerpc/mm/book3s64/hash_utils.c | 16 +- arch/powerpc/mm/fault.c | 28 +- arch/powerpc/xmon/xmon.c | 23 +- 20 files changed, 130 insertions(+), 676 deletions(-) -- 2.23.0