Re: [PATCH v2 1/3] KVM: VMX: move msr_ia32_feature_control to vcpu_vmx

Borislav Petkov
2016-06-16T11:49:16Z

On Thu, Jun 16, 2016 at 02:05:29PM +0800, Haozhong Zhang wrote:
> msr_ia32_feature_control will be used for LMCE and not depend only on
> nested anymore, so move it from struct nested_vmx to struct vcpu_vmx.
>
> Signed-off-by: Haozhong Zhang <haozhong.zhang@intel.com>
> ---
> arch/x86/kvm/vmx.c | 11 ++++++-----
> 1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
> index 57ec6a4..6b63f2d 100644
> --- a/arch/x86/kvm/vmx.c
> +++ b/arch/x86/kvm/vmx.c
> @@ -421,7 +421,6 @@ struct nested_vmx {
> struct pi_desc *pi_desc;
> bool pi_pending;
> u16 posted_intr_nv;
> - u64 msr_ia32_feature_control;
>
> struct hrtimer preemption_timer;
> bool preemption_timer_expired;
> @@ -602,6 +601,8 @@ struct vcpu_vmx {
> bool guest_pkru_valid;
> u32 guest_pkru;
> u32 host_pkru;
> +
> + u64 msr_ia32_feature_control;
> };
>
> enum segment_cache_field {
> @@ -2907,7 +2908,7 @@ static int vmx_get_msr(struct kvm_vcpu *vcpu, struct msr_data *msr_info)
> case MSR_IA32_FEATURE_CONTROL:
> if (!nested_vmx_allowed(vcpu))
> return 1;
> - msr_info->data = to_vmx(vcpu)->nested.msr_ia32_feature_control;
> + msr_info->data = to_vmx(vcpu)->msr_ia32_feature_control;

Since this moves out of struct nested_vmx, that check above it:

if (!nested_vmx_allowed(vcpu))

should not influence it anymore, no?

Ditto for the rest.

--
Regards/Gruss,
Boris.

SUSE Linux GmbH, GF: Felix Imendörffer, Jane Smithard, Graham Norton, HRB 21284 (AG Nürnberg)
--