[PATCH v3 0/9] powerpc: fast interrupt exit bug and misc fixes
Nicholas Piggin
npiggin at gmail.com
Wed Jun 30 17:46:12 AEST 2021
This is a bunch of fixes for powerpc next, mostly a nasty hole in fast
interrupt exit code found by Sachin and some other bits along the way
while looking at it.
Since v2:
- Fixed 64e patch 3 to really set exit_must_hard_disable.
- Reworded some changelogs.
Since v1:
- Fixed a bisection compile error due to a fix incorrectly going to
a later patch.
- Fixed the "add a table of implicit soft-masked addresses" patch to
include the low scv vector range as a soft-masked table entry. scv
was the original reason for implicit soft masking, and the previous
version breaks it. My stress testing was using an image without
scv glibc unfortunately.
- Fixed a bug with the same patch that would restore r12 with SRR1
rather than HSRR1 in the case of masked hypervisor interrupts after
searching the soft-mask table. Again unfortunately my stress testing
was in a guest so no HV interrupts.
Thanks to Michael for noticing these issues.
- Pulled in the hash page fault interrupt handler fix into this series
to make the dependencies clear (well it's not exactly dependent but
assertions introduced later make the existing bug crash more often).
Thanks,
Nick
Nicholas Piggin (9):
powerpc/64s: fix hash page fault interrupt handler
powerpc/64e: fix CONFIG_RELOCATABLE build warnings
powerpc/64e: remove implicit soft-masking and interrupt exit restart
logic
powerpc/64s: add a table of implicit soft-masked addresses
powerpc/64s/interrupt: preserve regs->softe for NMI interrupts
powerpc/64: enable MSR[EE] in irq replay pt_regs
powerpc/64/interrupt: add missing kprobe annotations on interrupt exit
symbols
powerpc/64s/interrupt: clean up interrupt return labels
powerpc/64s: move ret_from_fork etc above __end_soft_masked
arch/powerpc/include/asm/interrupt.h | 41 +++++++++---
arch/powerpc/include/asm/ppc_asm.h | 7 +++
arch/powerpc/kernel/exceptions-64e.S | 23 +++----
arch/powerpc/kernel/exceptions-64s.S | 64 ++++++++++++++++---
arch/powerpc/kernel/interrupt.c | 2 +-
arch/powerpc/kernel/interrupt_64.S | 90 ++++++++++++++++++---------
arch/powerpc/kernel/irq.c | 1 +
arch/powerpc/kernel/vmlinux.lds.S | 9 +++
arch/powerpc/lib/restart_table.c | 26 ++++++++
arch/powerpc/mm/book3s64/hash_utils.c | 24 ++++---
10 files changed, 212 insertions(+), 75 deletions(-)
--
2.23.0
More information about the Linuxppc-dev
mailing list