Message ID | 20240226190344.787149-4-pbonzini@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | KVM: SEV: allow customizing VMSA features | expand |
On Mon, Feb 26, 2024 at 02:03:32PM -0500, Paolo Bonzini wrote: > From: Sean Christopherson <seanjc@google.com> > > Leave SEV and SEV_ES '0' in kvm_cpu_caps by default, and instead set them > in sev_set_cpu_caps() if SEV and SEV-ES support are fully enabled. Aside > from the fact that sev_set_cpu_caps() is wildly misleading when it *clears* > capabilities, this will allow compiling out sev.c without falsely > advertising SEV/SEV-ES support in KVM_GET_SUPPORTED_CPUID. > > Signed-off-by: Sean Christopherson <seanjc@google.com> > Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Michael Roth <michael.roth@amd.com> > --- > arch/x86/kvm/cpuid.c | 2 +- > arch/x86/kvm/svm/sev.c | 8 ++++---- > 2 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c > index adba49afb5fe..bde4df13a7e8 100644 > --- a/arch/x86/kvm/cpuid.c > +++ b/arch/x86/kvm/cpuid.c > @@ -761,7 +761,7 @@ void kvm_set_cpu_caps(void) > kvm_cpu_cap_mask(CPUID_8000_000A_EDX, 0); > > kvm_cpu_cap_mask(CPUID_8000_001F_EAX, > - 0 /* SME */ | F(SEV) | 0 /* VM_PAGE_FLUSH */ | F(SEV_ES) | > + 0 /* SME */ | 0 /* SEV */ | 0 /* VM_PAGE_FLUSH */ | 0 /* SEV_ES */ | > F(SME_COHERENT)); > > kvm_cpu_cap_mask(CPUID_8000_0021_EAX, > diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c > index f06f9e51ad9d..aec3453fd73c 100644 > --- a/arch/x86/kvm/svm/sev.c > +++ b/arch/x86/kvm/svm/sev.c > @@ -2178,10 +2178,10 @@ void sev_vm_destroy(struct kvm *kvm) > > void __init sev_set_cpu_caps(void) > { > - if (!sev_enabled) > - kvm_cpu_cap_clear(X86_FEATURE_SEV); > - if (!sev_es_enabled) > - kvm_cpu_cap_clear(X86_FEATURE_SEV_ES); > + if (sev_enabled) > + kvm_cpu_cap_set(X86_FEATURE_SEV); > + if (sev_es_enabled) > + kvm_cpu_cap_set(X86_FEATURE_SEV_ES); > } > > void __init sev_hardware_setup(void) > -- > 2.39.1 > >
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index adba49afb5fe..bde4df13a7e8 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -761,7 +761,7 @@ void kvm_set_cpu_caps(void) kvm_cpu_cap_mask(CPUID_8000_000A_EDX, 0); kvm_cpu_cap_mask(CPUID_8000_001F_EAX, - 0 /* SME */ | F(SEV) | 0 /* VM_PAGE_FLUSH */ | F(SEV_ES) | + 0 /* SME */ | 0 /* SEV */ | 0 /* VM_PAGE_FLUSH */ | 0 /* SEV_ES */ | F(SME_COHERENT)); kvm_cpu_cap_mask(CPUID_8000_0021_EAX, diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c index f06f9e51ad9d..aec3453fd73c 100644 --- a/arch/x86/kvm/svm/sev.c +++ b/arch/x86/kvm/svm/sev.c @@ -2178,10 +2178,10 @@ void sev_vm_destroy(struct kvm *kvm) void __init sev_set_cpu_caps(void) { - if (!sev_enabled) - kvm_cpu_cap_clear(X86_FEATURE_SEV); - if (!sev_es_enabled) - kvm_cpu_cap_clear(X86_FEATURE_SEV_ES); + if (sev_enabled) + kvm_cpu_cap_set(X86_FEATURE_SEV); + if (sev_es_enabled) + kvm_cpu_cap_set(X86_FEATURE_SEV_ES); } void __init sev_hardware_setup(void)