[PATCH v3 00/32] powerpc/64: interrupts and syscalls series
Nicholas Piggin
npiggin at gmail.com
Wed Feb 26 04:35:09 AEDT 2020
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
More information about the Linuxppc-dev
mailing list