> > -   if (_vmexit_control & VM_EXIT_ACTIVATE_SECONDARY_CONTROLS)
> > +   if (_vmexit_control & VM_EXIT_ACTIVATE_SECONDARY_CONTROLS) {
> >             _secondary_vmexit_control =
> >
>       adjust_vmx_controls64(KVM_OPTIONAL_VMX_SECONDARY_VM_EXIT_CO
> NTROLS,
> >                                           MSR_IA32_VMX_EXIT_CTLS2);
> > +           if (cpu_feature_enabled(X86_FEATURE_FRED) &&
> > +               !(_secondary_vmexit_control &
> SECONDARY_VM_EXIT_SAVE_IA32_FRED &&
> > +                 _secondary_vmexit_control &
> SECONDARY_VM_EXIT_LOAD_IA32_FRED)) {
> 
> Can those checks actually trigger? I.e if FEATURE_FRED is set it means
> the CPU implements the FRED spec. According to the spec it's guaranteed
> that VMX_EXIT_CTLS2 will contain those bits set to 1. So aren't those
> checks superfluous?

Such checks are for nVMX FRED.

> > +   if (cpu_feature_enabled(X86_FEATURE_FRED) &&
> > +       !(_vmentry_control & VM_ENTRY_LOAD_IA32_FRED)) {
> DITTO
> 
> <snip>

Reply via email to