linux-bl808/arch/arm64/kernel
James Morse 1dd498e5e2 KVM: arm64: Workaround Cortex-A510's single-step and PAC trap errata
Cortex-A510's erratum #2077057 causes SPSR_EL2 to be corrupted when
single-stepping authenticated ERET instructions. A single step is
expected, but a pointer authentication trap is taken instead. The
erratum causes SPSR_EL1 to be copied to SPSR_EL2, which could allow
EL1 to cause a return to EL2 with a guest controlled ELR_EL2.

Because the conditions require an ERET into active-not-pending state,
this is only a problem for the EL2 when EL2 is stepping EL1. In this case
the previous SPSR_EL2 value is preserved in struct kvm_vcpu, and can be
restored.

Cc: stable@vger.kernel.org # 53960faf2b: arm64: Add Cortex-A510 CPU part definition
Cc: stable@vger.kernel.org
Signed-off-by: James Morse <james.morse@arm.com>
[maz: fixup cpucaps ordering]
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220127122052.1584324-5-james.morse@arm.com
2022-02-03 09:22:30 +00:00
..
probes
vdso arm64: vdso: Fix "no previous prototype" warning 2022-01-24 12:08:28 +00:00
vdso32
.gitignore
acpi.c
acpi_numa.c
acpi_parking_protocol.c
alternative.c
armv8_deprecated.c
asm-offsets.c
cacheinfo.c
cpu-reset.S
cpu_errata.c KVM: arm64: Workaround Cortex-A510's single-step and PAC trap errata 2022-02-03 09:22:30 +00:00
cpu_ops.c
cpufeature.c arm64: cpufeature: List early Cortex-A510 parts as having broken dbm 2022-01-28 16:15:46 +00:00
cpuidle.c
cpuinfo.c
crash_core.c
crash_dump.c
debug-monitors.c
efi-entry.S
efi-header.S
efi-rt-wrapper.S
efi.c
entry-common.c
entry-fpsimd.S
entry-ftrace.S
entry.S
fpsimd.c RISCV: 2022-01-16 16:15:14 +02:00
ftrace.c
head.S
hibernate-asm.S
hibernate.c
hw_breakpoint.c
hyp-stub.S
idle.c
idreg-override.c
image-vars.h
image.h
io.c
irq.c
jump_label.c
kaslr.c
kexec_image.c
kgdb.c
kuser32.S
machine_kexec.c
machine_kexec_file.c
Makefile
module-plts.c
module.c mm: defer kmemleak object creation of module_alloc() 2022-01-15 16:30:25 +02:00
mte.c
paravirt.c
patching.c
pci.c
perf_callchain.c Peter Zijlstra says: 2022-01-12 16:26:58 -08:00
perf_event.c
perf_regs.c
pointer_auth.c
process.c
proton-pack.c
psci.c
ptrace.c
reloc_test_core.c
reloc_test_syms.S
relocate_kernel.S
return_address.c
sdei.c
setup.c
signal.c
signal32.c
sigreturn32.S
sleep.S
smccc-call.S
smp.c
smp_spin_table.c
stacktrace.c arm64: Mark start_backtrace() notrace and NOKPROBE_SYMBOL 2022-01-24 14:25:20 +00:00
suspend.c
sys.c
sys32.c
sys_compat.c
syscall.c
time.c
topology.c
trace-events-emulation.h
traps.c Merge branch 'signal-for-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2022-01-17 05:49:30 +02:00
vdso-wrap.S
vdso.c
vdso32-wrap.S
vmlinux.lds.S