Does it still make sense to advertise "Enable VM Functions" in the
secondary processor-based VM-execution controls if we don't actually
support any VM Functions?

On Sat, Oct 14, 2017 at 7:31 PM, Wanpeng Li <[email protected]> wrote:
> From: Wanpeng Li <[email protected]>
>
> EPT switching is advertised unconditionally since it is emulated, however, it 
> can
> be treated as an extended feature for EPT, it should be not advertised if EPT 
> itself
> is not exposed. This patch fixes it.
>
> Cc: Paolo Bonzini <[email protected]>
> Cc: Radim Krčmář <[email protected]>
> Signed-off-by: Wanpeng Li <[email protected]>
> ---
>  arch/x86/kvm/vmx.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index c460b0b..3644540 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -2842,8 +2842,9 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx 
> *vmx)
>                  * Advertise EPTP switching unconditionally
>                  * since we emulate it
>                  */
> -               vmx->nested.nested_vmx_vmfunc_controls =
> -                       VMX_VMFUNC_EPTP_SWITCHING;
> +               if (enable_ept)
> +                       vmx->nested.nested_vmx_vmfunc_controls =
> +                               VMX_VMFUNC_EPTP_SWITCHING;
>         }
>
>         /*
> --
> 2.7.4
>

Reply via email to