This is a long overdue update of the series, with fixes from me Michal and Michael. Does not include Michal's syscall compat series.
Patches 1-22 are changes to low level 64s interrupt entry assembly which has been posted before, no change except adding patch 21 and fixing patch 22 to reconcile irq state in the soft-nmi handler to avoid preempt warnings. Patches 23-26 are to turn system call entry/exit code into C. Bunch of irq and preempt and TM warnings and bugs caught by selftests etc fixed, plus a few peripheral patches added (sstep and zeroing regs). Patches 27-29 are to turn interrupt exit code into C. This had a bit more change, most significantly a change to how interrupt exit soft irq replay works. Patches 30-32 are for scv system call support. Lot of changes here to turn it into something a bit better than RFC quality. Discussion about ABI seems to be settling and not very controversial. Thanks, Nick Nicholas Piggin (32): 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 powerpc/64s/exception: Add ISIDE option powerpc/64s/exception: move real->virt switch into the common handler powerpc/64s/exception: move soft-mask test to common code powerpc/64s/exception: move KVM test to common code powerpc/64s/exception: remove confusing IEARLY option powerpc/64s/exception: remove the SPR saving patch code macros powerpc/64s/exception: trim unused arguments from KVMTEST macro powerpc/64s/exception: hdecrementer avoid touching the stack powerpc/64s/exception: re-inline some handlers powerpc/64s/exception: Clean up SRR specifiers powerpc/64s/exception: add more comments for interrupt handlers powerpc/64s/exception: only test KVM in SRR interrupts when PR KVM is supported powerpc/64s/exception: sreset interrupts reconcile fix powerpc/64s/exception: soft nmi interrupt should not use ret_from_except powerpc/64: system call remove non-volatile GPR save optimisation powerpc/64: sstep ifdef the deprecated fast endian switch syscall powerpc/64: system call implement entry/exit logic in C powerpc/64: system call zero volatile registers when returning powerpc/64: implement soft interrupt replay in C powerpc/64s: interrupt implement exit logic in C powerpc/64s/exception: remove lite interrupt return powerpc/64: system call reconcile interrupts powerpc/64s/exception: treat NIA below __end_interrupts as soft-masked powerpc/64s: system call support for scv/rfscv instructions Documentation/powerpc/syscall64-abi.rst | 42 +- arch/powerpc/include/asm/asm-prototypes.h | 17 +- .../powerpc/include/asm/book3s/64/kup-radix.h | 24 +- arch/powerpc/include/asm/cputime.h | 29 + arch/powerpc/include/asm/exception-64s.h | 10 +- arch/powerpc/include/asm/head-64.h | 2 +- arch/powerpc/include/asm/hw_irq.h | 6 +- arch/powerpc/include/asm/ppc_asm.h | 2 + arch/powerpc/include/asm/processor.h | 2 +- arch/powerpc/include/asm/ptrace.h | 3 + arch/powerpc/include/asm/setup.h | 4 +- arch/powerpc/include/asm/signal.h | 3 + arch/powerpc/include/asm/switch_to.h | 11 + arch/powerpc/include/asm/time.h | 4 +- arch/powerpc/kernel/Makefile | 3 +- arch/powerpc/kernel/cpu_setup_power.S | 2 +- arch/powerpc/kernel/cputable.c | 3 +- arch/powerpc/kernel/dt_cpu_ftrs.c | 1 + arch/powerpc/kernel/entry_64.S | 1017 +++----- arch/powerpc/kernel/exceptions-64e.S | 287 ++- arch/powerpc/kernel/exceptions-64s.S | 2168 ++++++++++++----- arch/powerpc/kernel/irq.c | 183 +- arch/powerpc/kernel/process.c | 89 +- arch/powerpc/kernel/setup_64.c | 5 +- arch/powerpc/kernel/signal.h | 2 - arch/powerpc/kernel/syscall_64.c | 379 +++ arch/powerpc/kernel/syscalls/syscall.tbl | 22 +- arch/powerpc/kernel/systbl.S | 9 +- arch/powerpc/kernel/time.c | 9 - arch/powerpc/kernel/vector.S | 2 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 11 - arch/powerpc/kvm/book3s_segment.S | 7 - arch/powerpc/lib/sstep.c | 5 +- arch/powerpc/platforms/pseries/setup.c | 8 +- 34 files changed, 2769 insertions(+), 1602 deletions(-) create mode 100644 arch/powerpc/kernel/syscall_64.c -- 2.23.0