arm64: Move overflow sp into SP_EL1 and kernel sp into SP_EL0
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest21 patches 43 repliesIn review
- v121 patches 8 repliesSuperseded
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/21 | arm64: entry: Defer setting of TPIDRRO_EL0 until exit to userspacearch/ arch/ arch/ +1 more | +5 | 1 reply | |
| 2/21 | arm64: entry: Only check for stack overflow on exceptions from EL1arch/ | +6 | 2 replies | |
| 3/21 | arm64: stackprotector: Temporarily disable per-task stackprotectorarch/ | +1 | 1 reply | |
| 4/21 | arm64: bpf: Add support for generating reads of TPIDRRO_EL0arch/ arch/ | +3 | 2 replies | |
| 5/21 | KVM: arm64: Protect TPIDRRO_EL0 across guest entry/exitarch/ arch/ arch/ +1 more | +19 | 2 replies | |
| 6/21 | arm64: Store 'current' in TPIDRRO_EL0 instead of SP_EL0arch/ arch/ arch/ +4 more | +25 | 2 replies | |
| 7/21 | selftests/bpf: arm64: Use TPIDRRO_EL0 instead of SP_EL0 for 'current'tools/ | +1 | 2 replies | |
| 8/21 | scripts/gdb: arm64: Use TPIDRRO_EL0 instead of SP_EL0 for 'current'scripts/ | +1 | 2 replies | |
| 9/21 | arm64: stackprotector: Re-enable per-task stackprotectorarch/ arch/ | +2 | 2 replies | |
| 10/21 | arm64: percpu: Specialise set_my_cpu_offset() for the primary CPUarch/ arch/ | +7 | 2 replies | |
| 11/21 | arm64: percpu: Annotate __kern_my_cpu_offset() as '__always_inline'arch/ | +1 | 3 replies | |
| 12/21 | KVM: arm64: Preserve handler/thread bit of EL1 mode in __finalise_el2()arch/ arch/ | +5 | 0 replies | |
| 13/21 | arm64: sdei: Guard most of asm/sdei.h with CONFIG_ARM_SDE_INTERFACEarch/ | +2 | 0 replies | |
| 14/21 | arm64: sdei: Support SDEI events from kernel handler and thread modesarch/ | +3 | 0 replies | |
| 15/21 | arm64: entry: Point SP_EL0 at the overflow stackarch/ arch/ arch/ | +15 | 2 replies | |
| 16/21 | arm64: entry: Implement EL1t exception handlers for overflow stackarch/ | +39 | 2 replies | |
| 17/21 | arm64: entry: Use SPSel to switch to overflow stackarch/ | +21 | 2 replies | |
| 18/21 | arm64: entry: Split up kernel_ventry macro into separate helper macrosarch/ | +19 | 2 replies | |
| 19/21 | arm64: entry: The great stack switcherooarch/ arch/ arch/ +5 more | +70 | 7 replies | |
| 20/21 | arm64: tracing: Advertise a mode of EL1t in synthetic kernel regsarch/ arch/ | +3 | 1 reply | |
| 21/21 | arm64: Rename 'overflow_stack' and OVERFLOW_STACK_SIZEarch/ arch/ arch/ +9 more | +41 | 1 reply |
Reviews trailers per patch
15 of 21 patches have a Reviewed-by or Acked-by.
| Patch | Jinjie Ruan | Linus Walleij |
|---|---|---|
| 1/21 | R-b | R-b |
| 2/21 | R-b | R-b |
| 3/21 | R-b | |
| 4/21 | R-b | R-b |
| 5/21 | R-b | R-b |
| 6/21 | R-b | |
| 7/21 | R-b | R-b |
| 8/21 | R-b | R-b |
| 9/21 | R-b | R-b |
| 10/21 | R-b | R-b |
| 11/21 | R-b | R-b |
| 12/21 | ||
| 13/21 | ||
| 14/21 | ||
| 15/21 | R-b | |
| 16/21 | R-b | R-b |
| 17/21 | R-b | R-b |
| 18/21 | R-b | R-b |
| 19/21 | ||
| 20/21 | ||
| 21/21 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v2 00/21] arm64: Move overflow sp into SP_EL1 and kernel sp into SP_EL0
Hi folks,
This is version two of the kernel stack juggling patches I previously posted here:
https://lore.kernel.org/r/[email protected]
Changes since v1 include:
* Fixed suspend/resume paths to handle the stack pointers properly
* Fixed restoration of ptrauth keys on resume
* Added tags
Cheers,
Will
--->8
Mostafa Saleh (1):
KVM: arm64: Protect TPIDRRO_EL0 across guest entry/exit
Will Deacon (20):
arm64: entry: Defer setting of TPIDRRO_EL0 until exit to userspace
arm64: entry: Only check for stack overflow on exceptions from EL1
arm64: stackprotector: Temporarily disable per-task stackprotector
arm64: bpf: Add support for generating reads of TPIDRRO_EL0
arm64: Store 'current' in TPIDRRO_EL0 instead of SP_EL0 selftests/bpf: arm64: Use TPIDRRO_EL0 instead of SP_EL0 for 'current' scripts/gdb: arm64: Use TPIDRRO_EL0 instead of SP_EL0 for 'current'
arm64: stackprotector: Re-enable per-task stackprotector
arm64: percpu: Specialise set_my_cpu_offset() for the primary CPU
arm64: percpu: Annotate __kern_my_cpu_offset() as '__always_inline'
KVM: arm64: Preserve handler/thread bit of EL1 mode in
__finalise_el2()
arm64: sdei: Guard most of asm/sdei.h with CONFIG_ARM_SDE_INTERFACE
arm64: sdei: Support SDEI events from kernel handler and thread modes
arm64: entry: Point SP_EL0 at the overflow stack
arm64: entry: Implement EL1t exception handlers for overflow stack
arm64: entry: Use SPSel to switch to overflow stack
arm64: entry: Split up kernel_ventry macro into separate helper macros
arm64: entry: The great stack switcheroo
arm64: tracing: Advertise a mode of EL1t in synthetic kernel regs
arm64: Rename 'overflow_stack' and OVERFLOW_STACK_SIZE
arch/arm64/Kconfig | 2 +- arch/arm64/Makefile | 2 +- arch/arm64/include/asm/assembler.h | 2 +- arch/arm64/include/asm/current.h | 6 +- arch/arm64/include/asm/ftrace.h | 4 +- arch/arm64/include/asm/insn.h | 1 + arch/arm64/include/asm/kvm_asm.h | 26 +++++ arch/arm64/include/asm/memory.h | 10 +- arch/arm64/include/asm/percpu.h | 10 +- arch/arm64/include/asm/perf_event.h | 2 +- arch/arm64/include/asm/sdei.h | 2 + arch/arm64/include/asm/stacktrace.h | 9 +- arch/arm64/include/asm/stacktrace/nvhe.h | 3 +- arch/arm64/include/uapi/asm/ptrace.h | 1 + arch/arm64/kernel/asm-offsets.c | 2 + arch/arm64/kernel/entry-common.c | 51 +++++++-- arch/arm64/kernel/entry.S | 108 +++++++++--------- arch/arm64/kernel/head.S | 8 +- arch/arm64/kernel/hyp-stub.S | 7 +- arch/arm64/kernel/process.c | 21 +--- arch/arm64/kernel/sdei.c | 6 +- arch/arm64/kernel/sleep.S | 3 +- arch/arm64/kernel/smp.c | 19 ++- arch/arm64/kernel/stacktrace.c | 2 +- arch/arm64/kernel/sys_compat.c | 7 -- arch/arm64/kernel/traps.c | 14 +-- arch/arm64/kvm/hyp/entry.S | 15 ++- arch/arm64/kvm/hyp/include/hyp/sysreg-sr.h | 2 - arch/arm64/kvm/hyp/nvhe/host.S | 2 +- arch/arm64/kvm/hyp/nvhe/stacktrace.c | 4 +- arch/arm64/kvm/stacktrace.c | 4 +- arch/arm64/mm/proc.S | 16 ++- arch/arm64/net/bpf_jit.h | 2 + arch/arm64/net/bpf_jit_comp.c | 4 +- scripts/gdb/linux/cpus.py | 2 +- .../selftests/bpf/progs/verifier_jit_inline.c | 2 +- 36 files changed, 230 insertions(+), 151 deletions(-)
Signature · 1 line
2.55.0.1082.g2b9226bbc0-goog