linux/arch/arm64/kvm
Oliver Upton 62ef55aa43 KVM: arm64: Reject 32bit user PSTATE on asymmetric systems
[ Upstream commit b10d86fb8e ]

KVM does not support AArch32 EL0 on asymmetric systems. To that end,
prevent userspace from configuring a vCPU in such a state through
setting PSTATE.

It is already ABI that KVM rejects such a write on a system where
AArch32 EL0 is unsupported. Though the kernel's definition of a 32bit
system changed in commit 2122a83331 ("arm64: Allow mismatched
32-bit EL0 support"), KVM's did not.

Fixes: 2122a83331 ("arm64: Allow mismatched 32-bit EL0 support")
Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20220816192554.1455559-3-oliver.upton@linux.dev
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2022-08-25 11:45:38 +02:00
..
hyp KVM: arm64: Don't return from void function 2022-08-17 15:15:28 +02:00
vgic KVM: arm64: Replace vgic_v3_uaccess_read_pending with vgic_uaccess_read_pending 2022-06-08 10:16:15 +01:00
.gitignore KVM: arm64: Generate hyp_constants.h for the host 2021-12-06 08:37:03 +00:00
arch_timer.c KVM: arm64: Warn if accessing timer pending state outside of vcpu context 2022-06-08 10:16:23 +01:00
arm.c KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems 2022-08-25 11:45:38 +02:00
debug.c KVM: arm64: Emulate the OS Lock 2022-02-08 14:23:41 +00:00
fpsimd.c KVM: arm64: Always start with clearing SME flag on load 2022-06-07 14:31:30 +01:00
guest.c KVM: arm64: Reject 32bit user PSTATE on asymmetric systems 2022-08-25 11:45:38 +02:00
handle_exit.c KVM: arm64: Fix hypervisor address symbolization 2022-08-17 15:15:33 +02:00
hypercalls.c KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run 2022-05-16 17:40:48 +01:00
inject_fault.c arm64 updates for 5.19: 2022-05-23 21:06:11 -07:00
irq.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 422 2019-06-05 17:37:15 +02:00
Kconfig RISCV: 2022-01-16 16:15:14 +02:00
Makefile KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected 2022-05-16 13:42:41 +01:00
mmio.c KVM: arm64: Generalise VM features into a set of flags 2022-03-18 14:02:33 +00:00
mmu.c Merge branch kvm-arm64/hyp-stack-guard into kvmarm-master/next 2022-05-04 09:42:37 +01:00
pkvm.c KVM: arm64: Move host EL1 code out of hyp/ directory 2021-12-06 08:37:03 +00:00
pmu-emul.c Merge branch kvm-arm64/per-vcpu-host-pmu-data into kvmarm-master/next 2022-05-16 17:48:36 +01:00
pmu.c KVM: arm64: Pass pmu events to hyp via vcpu 2022-05-15 11:26:41 +01:00
psci.c Merge branch kvm-arm64/psci-suspend into kvmarm-master/next 2022-05-16 17:48:20 +01:00
pvtime.c KVM: arm64: Use kvm_write_guest_lock when init stolen time 2020-12-03 19:02:18 +00:00
reset.c KVM: arm64: mixed-width check should be skipped for uninitialized vCPUs 2022-04-06 12:29:45 +01:00
sys_regs.c KVM: arm64: Treat PMCR_EL1.LC as RES1 on asymmetric systems 2022-08-25 11:45:38 +02:00
sys_regs.h KVM: arm64: Hide AArch32 PMU registers when not available 2022-05-03 11:17:41 +01:00
trace.h KVM: arm64: Move virt/kvm/arm to arch/arm64 2020-05-16 15:03:59 +01:00
trace_arm.h KVM: Move arm64's MMU notifier trace events to generic code 2021-04-17 08:30:56 -04:00
trace_handle_exit.h KVM: arm64: Upgrade trace_kvm_arm_set_dreg32() to 64bit 2021-08-20 11:12:18 +01:00
trng.c KVM: arm64: Implement the TRNG hypervisor call 2021-01-25 22:19:31 +00:00
va_layout.c KVM: arm64: Generate final CTR_EL0 value when running in Protected mode 2021-03-25 11:00:33 +00:00
vgic-sys-reg-v3.c KVM: arm64: Drop is_aarch32 trap attribute 2020-11-10 11:22:52 +00:00
vmid.c KVM: arm64: Fix inconsistent indenting 2022-06-07 15:27:05 +01:00