mirror of
https://github.com/torvalds/linux.git
synced 2026-07-28 01:55:51 +02:00
KVM: selftests: sev_smoke_test: Only run VM types the host offers
sev_smoke_test ran the plain SEV subtest unconditionally, gated only on the X86_FEATURE_SEV CPUID bit, while gating SEV-ES and SNP on the KVM_CAP_VM_TYPES bits. CPUID reporting SEV does not mean KVM offers the SEV VM type: when all SEV ASIDs are assigned to SEV-SNP, KVM_X86_SEV_VM is unavailable even though X86_FEATURE_SEV is set. On such a host the test aborts in KVM_CREATE_VM instead of exercising the available modes. Gate the SEV subtest on KVM_CAP_VM_TYPES like the others, so the test runs the VM types the host actually offers. Reviewed-by: Tycho Andersen (AMD) <tycho@kernel.org> Signed-off-by: David Woodhouse <dwmw@amazon.co.uk> Message-ID: <2b5e7a83d277134294199a455469bb436196b902.1784545391.git.dwmw@amazon.co.uk> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
52f2f7c301
commit
cd76ec58be
|
|
@ -247,7 +247,14 @@ int main(int argc, char *argv[])
|
|||
{
|
||||
TEST_REQUIRE(kvm_cpu_has(X86_FEATURE_SEV));
|
||||
|
||||
test_sev_smoke(guest_sev_code, KVM_X86_SEV_VM, 0);
|
||||
/*
|
||||
* Only exercise VM types the host actually offers. CPUID reporting
|
||||
* SEV does not guarantee KVM offers the SEV VM type: when all SEV
|
||||
* ASIDs are assigned to SEV-SNP, KVM_X86_SEV_VM is unavailable even
|
||||
* though X86_FEATURE_SEV is set. Gate every type on KVM_CAP_VM_TYPES.
|
||||
*/
|
||||
if (kvm_check_cap(KVM_CAP_VM_TYPES) & BIT(KVM_X86_SEV_VM))
|
||||
test_sev_smoke(guest_sev_code, KVM_X86_SEV_VM, 0);
|
||||
|
||||
if (kvm_check_cap(KVM_CAP_VM_TYPES) & BIT(KVM_X86_SEV_ES_VM))
|
||||
test_sev_smoke(guest_sev_es_code, KVM_X86_SEV_ES_VM, SEV_POLICY_ES);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user