Skip to content

Commit

Permalink
KVM: arm64: Reject 32bit user PSTATE on asymmetric systems
Browse files Browse the repository at this point in the history
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 2122a83 ("arm64: Allow mismatched
32-bit EL0 support"), KVM's did not.

Fixes: 2122a83 ("arm64: Allow mismatched 32-bit EL0 support")
Signed-off-by: Oliver Upton <[email protected]>
Signed-off-by: Marc Zyngier <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
  • Loading branch information
oupton authored and Marc Zyngier committed Aug 17, 2022
1 parent f3c6efc commit b10d86f
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/arm64/kvm/guest.c
Original file line number Diff line number Diff line change
Expand Up @@ -242,7 +242,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
u64 mode = (*(u64 *)valp) & PSR_AA32_MODE_MASK;
switch (mode) {
case PSR_AA32_MODE_USR:
if (!system_supports_32bit_el0())
if (!kvm_supports_32bit_el0())
return -EINVAL;
break;
case PSR_AA32_MODE_FIQ:
Expand Down

0 comments on commit b10d86f

Please sign in to comment.