On 09/09/2015 08:05, Xiao Guangrong wrote:
> +     if (!guest_cpuid_has_pcommit(vcpu) && nested)
> +             vmx->nested.nested_vmx_secondary_ctls_high &=
> +                     ~SECONDARY_EXEC_PCOMMIT;

It is legal to set CPUID multiple times, so I think we need

        if (static_cpu_has(X86_FEATURE_PCOMMIT) && nested) {
                if (guest_cpuid_has_pcommit(vcpu))
                        vmx->nested.nested_vmx_secondary_ctls_high |=
                                SECONDARY_EXEC_PCOMMIT;
                else
                        vmx->nested.nested_vmx_secondary_ctls_high &=
                                ~SECONDARY_EXEC_PCOMMIT;
        }

The INVPCID exit probably should be handled the same way as PCOMMIT;
moving both to a new nested_vmx_update_ctls_msrs probably makes sense.

This can be done on top of this series.

Paolo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to