Since RFC: - Rebased on Christophe's v3 ppc32 conversion - Fixed up small details, adds some powerpc-wide cleanups at the end.
Since v1: - Christophe's review comments accounted for: - Split common code interrupt changes for 64e from 64e conversion. - Removed unnecessary ifdef additions from common interrupt code. - Keep interrupt return context tracking debug check for 64e when it switches to new context tracing. - __bad_page_fault is made static in page fault cleanup. - CPU time accounting asm and asm offsets can be removed with 64e conversion. 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 (11): powerpc/syscall: switch user_exit_irqoff and trace_hardirqs_off order powerpc/64e/interrupt: always save nvgprs on interrupt powerpc/interrupt: update common interrupt code for 64e 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 | 5 +- arch/powerpc/include/asm/interrupt.h | 66 ++-- arch/powerpc/include/asm/ppc_asm.h | 20 - arch/powerpc/include/asm/ptrace.h | 39 +- arch/powerpc/kernel/align.c | 6 - arch/powerpc/kernel/asm-offsets.c | 10 - arch/powerpc/kernel/entry_64.S | 40 +- arch/powerpc/kernel/exceptions-64e.S | 425 ++-------------------- arch/powerpc/kernel/interrupt.c | 26 +- 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 | 30 +- arch/powerpc/xmon/xmon.c | 23 +- 22 files changed, 126 insertions(+), 720 deletions(-) -- 2.23.0