On Wed, Dec 30, 2020, Borislav Petkov wrote:
> On Tue, Dec 22, 2020 at 04:31:55PM -0600, Babu Moger wrote:
> > @@ -2549,7 +2559,10 @@ static int svm_get_msr(struct kvm_vcpu *vcpu, struct 
> > msr_data *msr_info)
> >                 !guest_cpuid_has(vcpu, X86_FEATURE_AMD_SSBD))
> >                     return 1;
> >  
> > -           msr_info->data = svm->spec_ctrl;
> > +           if (static_cpu_has(X86_FEATURE_V_SPEC_CTRL))
> > +                   msr_info->data = svm->vmcb->save.spec_ctrl;
> > +           else
> > +                   msr_info->data = svm->spec_ctrl;
> >             break;
> >     case MSR_AMD64_VIRT_SPEC_CTRL:
> >             if (!msr_info->host_initiated &&
> > @@ -2640,6 +2653,8 @@ static int svm_set_msr(struct kvm_vcpu *vcpu, struct 
> > msr_data *msr)
> >                     return 1;
> >  
> >             svm->spec_ctrl = data;
> > +           if (static_cpu_has(X86_FEATURE_V_SPEC_CTRL))
> > +                   svm->vmcb->save.spec_ctrl = data;
> >             if (!data)
> >                     break;
> >  
> 
> Are the get/set_msr() accessors such a fast path that they need
> static_cpu_has() ?

Nope, they can definitely use boot_cpu_has().

Reply via email to