Commit be9c0c01 authored by Oliver Upton's avatar Oliver Upton

KVM: arm64: Hoist SVE check into KVM_ARM_VCPU_INIT ioctl handler

Test that the system supports SVE before ever getting to
kvm_reset_vcpu().

Link: https://lore.kernel.org/r/20230920195036.1169791-4-oliver.upton@linux.devSigned-off-by: default avatarOliver Upton <oliver.upton@linux.dev>
parent 9116db11
...@@ -1200,6 +1200,9 @@ static unsigned long system_supported_vcpu_features(void) ...@@ -1200,6 +1200,9 @@ static unsigned long system_supported_vcpu_features(void)
if (!kvm_arm_support_pmu_v3()) if (!kvm_arm_support_pmu_v3())
clear_bit(KVM_ARM_VCPU_PMU_V3, &features); clear_bit(KVM_ARM_VCPU_PMU_V3, &features);
if (!system_supports_sve())
clear_bit(KVM_ARM_VCPU_SVE, &features);
return features; return features;
} }
......
...@@ -73,11 +73,8 @@ int __init kvm_arm_init_sve(void) ...@@ -73,11 +73,8 @@ int __init kvm_arm_init_sve(void)
return 0; return 0;
} }
static int kvm_vcpu_enable_sve(struct kvm_vcpu *vcpu) static void kvm_vcpu_enable_sve(struct kvm_vcpu *vcpu)
{ {
if (!system_supports_sve())
return -EINVAL;
vcpu->arch.sve_max_vl = kvm_sve_max_vl; vcpu->arch.sve_max_vl = kvm_sve_max_vl;
/* /*
...@@ -86,8 +83,6 @@ static int kvm_vcpu_enable_sve(struct kvm_vcpu *vcpu) ...@@ -86,8 +83,6 @@ static int kvm_vcpu_enable_sve(struct kvm_vcpu *vcpu)
* kvm_arm_vcpu_finalize(), which freezes the configuration. * kvm_arm_vcpu_finalize(), which freezes the configuration.
*/ */
vcpu_set_flag(vcpu, GUEST_HAS_SVE); vcpu_set_flag(vcpu, GUEST_HAS_SVE);
return 0;
} }
/* /*
...@@ -231,11 +226,8 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) ...@@ -231,11 +226,8 @@ int kvm_reset_vcpu(struct kvm_vcpu *vcpu)
} }
if (!kvm_arm_vcpu_sve_finalized(vcpu)) { if (!kvm_arm_vcpu_sve_finalized(vcpu)) {
if (test_bit(KVM_ARM_VCPU_SVE, vcpu->arch.features)) { if (test_bit(KVM_ARM_VCPU_SVE, vcpu->arch.features))
ret = kvm_vcpu_enable_sve(vcpu); kvm_vcpu_enable_sve(vcpu);
if (ret)
goto out;
}
} else { } else {
kvm_vcpu_reset_sve(vcpu); kvm_vcpu_reset_sve(vcpu);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment