KVM: arm64: Allow AArch32 PSTATE.M to be restored as System mode
authorMarc Zyngier <maz@kernel.org>
Fri, 24 May 2024 14:19:55 +0000 (15:19 +0100)
committerMarc Zyngier <maz@kernel.org>
Mon, 27 May 2024 16:45:35 +0000 (17:45 +0100)
It appears that we don't allow a vcpu to be restored in AArch32
System mode, as we *never* included it in the list of valid modes.

Just add it to the list of allowed modes.

Fixes: 0d854a60b1d7 ("arm64: KVM: enable initialization of a 32bit vcpu")
Cc: stable@vger.kernel.org
Acked-by: Oliver Upton <oliver.upton@linux.dev>
Link: https://lore.kernel.org/r/20240524141956.1450304-3-maz@kernel.org
Signed-off-by: Marc Zyngier <maz@kernel.org>
arch/arm64/kvm/guest.c

index d9617b11f7a87dba9b257b5e529bdc5a3989f9f0..11098eb7eb44af659bda1c9a9b2d047ff143218e 100644 (file)
@@ -251,6 +251,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
                case PSR_AA32_MODE_SVC:
                case PSR_AA32_MODE_ABT:
                case PSR_AA32_MODE_UND:
+               case PSR_AA32_MODE_SYS:
                        if (!vcpu_el1_is_32bit(vcpu))
                                return -EINVAL;
                        break;