]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
KVM: SEV: Don't advertise VM types that are disabled by firmware
authorTycho Andersen <tycho@kernel.org>
Thu, 16 Apr 2026 23:23:28 +0000 (16:23 -0700)
committerSean Christopherson <seanjc@google.com>
Wed, 13 May 2026 16:55:54 +0000 (09:55 -0700)
As called out in a footnote for a recent SNP vulnerability[1], it is
possible for a specific flavor of SEV+ to be disabled by the firmware even
when the flavor is fully supported by the CPU and platform:

  Applying mitigation CVE-2025-48514 will result in disabling SEV-ES when
  SEV-SNP is enabled.

Restrict KVM's set of supported VM types based on the VM types that are
fully supported by firmware to avoid over-reporting what KVM can actually
support.  Like KVM's handling of ASID space exhaustion, don't modify KVM's
CPUID capabilities, as the CPU/platform still supports the underlying
technology and clearing e.g. SEV_ES while advertising SEV_SNP would confuse
KVM and userspace.

Link: https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3023.html
Link: https://lore.kernel.org/all/aZyLIWtffvEnmtYh@google.com
Suggested-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Tycho Andersen (AMD) <tycho@kernel.org>
[sean: rewrite changelog to provide details on why/how this can happen]
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Tested-by: Tycho Andersen (AMD) <tycho@kernel.org>
Link: https://patch.msgid.link/20260416232329.3408497-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/svm/sev.c

index 105d95034caeaf6e202af4f0ab75aafc4f5e635e..145d0c54d955f452bcb573346485f105fdf2232c 100644 (file)
@@ -3202,6 +3202,7 @@ out:
                vm_types |= BIT(KVM_X86_SEV_ES_VM);
        if (sev_snp_supported)
                vm_types |= BIT(KVM_X86_SNP_VM);
+       vm_types &= sev_firmware_supported_vm_types();
 
        kvm_caps.supported_vm_types |= vm_types;