[PATCH v3 0/7] KVM: SEV: Don't advertise unusable VM types

Sean Christopherson posted 7 patches 2 months ago
arch/x86/kvm/svm/sev.c                        |  40 ++++---
drivers/crypto/ccp/sev-dev.c                  | 101 ++++++++++++++++--
include/linux/psp-sev.h                       |  37 +++++++
.../selftests/kvm/x86/sev_init2_tests.c       |  14 ++-
.../selftests/kvm/x86/sev_migrate_tests.c     |   2 +-
.../selftests/kvm/x86/sev_smoke_test.c        |   4 +-
6 files changed, 163 insertions(+), 35 deletions(-)
[PATCH v3 0/7] KVM: SEV: Don't advertise unusable VM types
Posted by Sean Christopherson 2 months ago
My preference would be to take this through the KVM tree, with acks on the
crypto patches.  I'd also be a-ok with a stable branch/tag of the crypto
changes.

In the words of Tycho:

Recent SEV firmware [1] does not support SEV-ES VMs when SNP is enabled.
Expose this by revoking VM-types that are not supported by the current
configurations either from firmware restrictions or ASID configuration.

My previous version of this patch series [2] used SNP_VERIFY_MITIGATION
to test for a mitigation bit. While AMD-SB-3023 says that there is a
mitigation bit (3) for CVE-2025-48514, bit 3 corresponds to an unrelated
issue. The correct way to check for this is to use the SVN/SPL from the
TCB. We are in the process of updating the SB to reflect this.

v3:
 - Relocate the supported_vm_types updates to sev_hardware_setup.
 - Report unusable VM types as such in dmesg.

v2:
 - https://lore.kernel.org/all/20260324194034.1442133-1-tycho@kernel.org
 - compare SVN as above
 - fix commit message prefixes
 - supported_vm_types local is a u32
 - move crypto stuff before KVM stuff in the event of patch tetris

[1]: https://www.amd.com/en/resources/product-security/bulletin/amd-sb-3023.html
[2]: https://lore.kernel.org/all/20260303191509.1565629-1-tycho@kernel.org

Sean Christopherson (3):
  KVM: SEV: Set supported SEV+ VM types during sev_hardware_setup()
  KVM: SEV: Consolidate logic for printing state of SEV{,-ES,-SNP}
    enabling
  KVM: SEV: Don't advertise support for unusable VM types

Tycho Andersen (4):
  crypto/ccp: hoist kernel part of SNP_PLATFORM_STATUS
  crypto/ccp: export firmware supported vm types
  KVM: SEV: Don't advertise VM types that are disabled by firmware
  KVM: selftests: Teach sev_*_test about revoking VM types

 arch/x86/kvm/svm/sev.c                        |  40 ++++---
 drivers/crypto/ccp/sev-dev.c                  | 101 ++++++++++++++++--
 include/linux/psp-sev.h                       |  37 +++++++
 .../selftests/kvm/x86/sev_init2_tests.c       |  14 ++-
 .../selftests/kvm/x86/sev_migrate_tests.c     |   2 +-
 .../selftests/kvm/x86/sev_smoke_test.c        |   4 +-
 6 files changed, 163 insertions(+), 35 deletions(-)


base-commit: 6b802031877a995456c528095c41d1948546bf45
-- 
2.54.0.rc1.513.gad8abe7a5a-goog
Re: [PATCH v3 0/7] KVM: SEV: Don't advertise unusable VM types
Posted by Tycho Andersen 1 month, 4 weeks ago
On Thu, Apr 16, 2026 at 04:23:22PM -0700, Sean Christopherson wrote:
> My preference would be to take this through the KVM tree, with acks on the
> crypto patches.  I'd also be a-ok with a stable branch/tag of the crypto
> changes.
> 
> In the words of Tycho:
> 
> Recent SEV firmware [1] does not support SEV-ES VMs when SNP is enabled.
> Expose this by revoking VM-types that are not supported by the current
> configurations either from firmware restrictions or ASID configuration.
> 
> My previous version of this patch series [2] used SNP_VERIFY_MITIGATION
> to test for a mitigation bit. While AMD-SB-3023 says that there is a
> mitigation bit (3) for CVE-2025-48514, bit 3 corresponds to an unrelated
> issue. The correct way to check for this is to use the SVN/SPL from the
> TCB. We are in the process of updating the SB to reflect this.

I re-ran my matrix of firmware tests:

Tested-by: Tycho Andersen (AMD) <tycho@kernel.org>

Thanks for cleaning this up.

Tycho
Re: [PATCH v3 0/7] KVM: SEV: Don't advertise unusable VM types
Posted by Sean Christopherson 4 weeks ago
On Thu, 16 Apr 2026 16:23:22 -0700, Sean Christopherson wrote:
> My preference would be to take this through the KVM tree, with acks on the
> crypto patches.  I'd also be a-ok with a stable branch/tag of the crypto
> changes.
> 
> In the words of Tycho:
> 
> Recent SEV firmware [1] does not support SEV-ES VMs when SNP is enabled.
> Expose this by revoking VM-types that are not supported by the current
> configurations either from firmware restrictions or ASID configuration.
> 
> [...]

Applied to kvm-x86 sev, thanks!  Holler if anyone needs a stable tag.

[1/7] crypto/ccp: hoist kernel part of SNP_PLATFORM_STATUS
      https://github.com/kvm-x86/linux/commit/acf4d11a35d8
[2/7] crypto/ccp: export firmware supported vm types
      https://github.com/kvm-x86/linux/commit/4b28f0846ef6
[3/7] KVM: SEV: Set supported SEV+ VM types during sev_hardware_setup()
      https://github.com/kvm-x86/linux/commit/c2a02db765af
[4/7] KVM: SEV: Consolidate logic for printing state of SEV{,-ES,-SNP} enabling
      https://github.com/kvm-x86/linux/commit/82bf8282444c
[5/7] KVM: SEV: Don't advertise support for unusable VM types
      https://github.com/kvm-x86/linux/commit/93d1a486e1d4
[6/7] KVM: SEV: Don't advertise VM types that are disabled by firmware
      https://github.com/kvm-x86/linux/commit/d8355a92df1f
[7/7] KVM: selftests: Teach sev_*_test about revoking VM types
      https://github.com/kvm-x86/linux/commit/accb7f3a6384

--
https://github.com/kvm-x86/linux/tree/next