Support content mode ZERO for TDX by doing nothing, since TDX firmware will
zero for the host on private to shared conversions.

Signed-off-by: Ackerley Tng <[email protected]>
---
 arch/x86/kvm/x86.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 49c19897a9c30..1354fa89edb09 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -14088,8 +14088,9 @@ u64 kvm_arch_gmem_supported_content_modes(struct kvm 
*kvm)
        case KVM_X86_SEV_VM:
        case KVM_X86_SEV_ES_VM:
        case KVM_X86_SNP_VM:
-       case KVM_X86_TDX_VM:
                return 0;
+       case KVM_X86_TDX_VM:
+               return KVM_SET_MEMORY_ATTRIBUTES2_ZERO;
        case KVM_X86_DEFAULT_VM:
        default:
                WARN_ONCE(1, "Unexpected conversion request for vm_type.");
@@ -14103,6 +14104,9 @@ int kvm_arch_gmem_apply_content_mode_zero(struct kvm 
*kvm,
        switch (kvm->arch.vm_type) {
        case KVM_X86_SW_PROTECTED_VM:
                return kvm_gmem_apply_content_mode_zero(folio);
+       case KVM_X86_TDX_VM:
+               /* Rely on TDX firmware to do zeroing. */
+               return 0;
        default:
                WARN_ONCE(1, "Unexpected request to zero for vm_type.");
                return -EOPNOTSUPP;

-- 
2.53.0.851.ga537e3e6e9-goog


Reply via email to