[PATCH v2 00/11] Move 64e to new interrupt return code
Nicholas Piggin
npiggin at gmail.com
Tue Mar 16 21:41:54 AEDT 2021
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
More information about the Linuxppc-dev
mailing list