[PATCH 00/33] exception cleanup, syscall in C and !COMPAT

From: Michal Suchanek
Date: Tue Nov 12 2019 - 11:53:19 EST


Hello,

This is merge of https://patchwork.ozlabs.org/cover/1162376/ (except two
last experimental patches) and
https://patchwork.ozlabs.org/patch/1162079/ rebased on top of master.

There was minor conflict in Makefile in the latter series.

Thanks

Michal

Michal Suchanek (8):
powerpc: Add back __ARCH_WANT_SYS_LLSEEK macro
powerpc: move common register copy functions from signal_32.c to
signal.c
powerpc/perf: consolidate read_user_stack_32
powerpc/perf: consolidate valid_user_sp
powerpc/perf: remove current_is_64bit()
powerpc/64: make buildable without CONFIG_COMPAT
powerpc/64: Make COMPAT user-selectable disabled on littleendian by
default.
powerpc/perf: split callchain.c by bitness

Nicholas Piggin (25):
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: soft nmi interrupt should not use
ret_from_except
powerpc/64: system call remove non-volatile GPR save optimisation
powerpc/64: system call implement the bulk of the logic in C
powerpc/64s: interrupt return in C
powerpc/64s/exception: remove lite interrupt return

arch/powerpc/Kconfig | 5 +-
arch/powerpc/include/asm/asm-prototypes.h | 11 -
.../powerpc/include/asm/book3s/64/kup-radix.h | 24 +-
arch/powerpc/include/asm/cputime.h | 24 +
arch/powerpc/include/asm/exception-64s.h | 4 -
arch/powerpc/include/asm/hw_irq.h | 4 +
arch/powerpc/include/asm/ptrace.h | 3 +
arch/powerpc/include/asm/signal.h | 3 +
arch/powerpc/include/asm/switch_to.h | 11 +
arch/powerpc/include/asm/thread_info.h | 4 +-
arch/powerpc/include/asm/time.h | 4 +-
arch/powerpc/include/asm/unistd.h | 1 +
arch/powerpc/kernel/Makefile | 9 +-
arch/powerpc/kernel/entry_64.S | 880 ++------
arch/powerpc/kernel/exceptions-64e.S | 254 ++-
arch/powerpc/kernel/exceptions-64s.S | 1937 ++++++++++++-----
arch/powerpc/kernel/process.c | 89 +-
arch/powerpc/kernel/signal.c | 144 +-
arch/powerpc/kernel/signal.h | 2 -
arch/powerpc/kernel/signal_32.c | 140 --
arch/powerpc/kernel/syscall_64.c | 348 +++
arch/powerpc/kernel/syscalls/syscall.tbl | 22 +-
arch/powerpc/kernel/systbl.S | 9 +-
arch/powerpc/kernel/time.c | 9 -
arch/powerpc/kernel/vdso.c | 3 +-
arch/powerpc/kernel/vector.S | 2 +-
arch/powerpc/kvm/book3s_hv_rmhandlers.S | 11 -
arch/powerpc/kvm/book3s_segment.S | 7 -
arch/powerpc/perf/Makefile | 5 +-
arch/powerpc/perf/callchain.c | 387 +---
arch/powerpc/perf/callchain.h | 25 +
arch/powerpc/perf/callchain_32.c | 197 ++
arch/powerpc/perf/callchain_64.c | 178 ++
fs/read_write.c | 3 +-
34 files changed, 2794 insertions(+), 1965 deletions(-)
create mode 100644 arch/powerpc/kernel/syscall_64.c
create mode 100644 arch/powerpc/perf/callchain.h
create mode 100644 arch/powerpc/perf/callchain_32.c
create mode 100644 arch/powerpc/perf/callchain_64.c

--
2.23.0