У вт, 2023-10-10 у 18:02 +0200, Vitaly Kuznetsov пише: > 'hv_evmcs_vmptr'/'hv_evmcs_map'/'hv_evmcs' fields in 'struct nested_vmx' > should not be used when !CONFIG_KVM_HYPERV, hide them when > !CONFIG_KVM_HYPERV. > > No functional change intended. > > Signed-off-by: Vitaly Kuznetsov <vkuznets@xxxxxxxxxx> > --- > arch/x86/kvm/vmx/nested.c | 2 ++ > arch/x86/kvm/vmx/vmx.c | 3 +++ > arch/x86/kvm/vmx/vmx.h | 2 ++ > 3 files changed, 7 insertions(+) > > diff --git a/arch/x86/kvm/vmx/nested.c b/arch/x86/kvm/vmx/nested.c > index d539904d8f1e..10cb35cd7a19 100644 > --- a/arch/x86/kvm/vmx/nested.c > +++ b/arch/x86/kvm/vmx/nested.c > @@ -6650,6 +6650,7 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu, > return -EINVAL; > > set_current_vmptr(vmx, kvm_state->hdr.vmx.vmcs12_pa); > +#ifdef CONFIG_KVM_HYPERV > } else if (kvm_state->flags & KVM_STATE_NESTED_EVMCS) { > /* > * nested_vmx_handle_enlightened_vmptrld() cannot be called > @@ -6659,6 +6660,7 @@ static int vmx_set_nested_state(struct kvm_vcpu *vcpu, > */ > vmx->nested.hv_evmcs_vmptr = EVMPTR_MAP_PENDING; > kvm_make_request(KVM_REQ_GET_NESTED_STATE_PAGES, vcpu); > +#endif > } else { > return -EINVAL; > } > diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c > index 04eb5d4d28bc..3b1bd3d97150 100644 > --- a/arch/x86/kvm/vmx/vmx.c > +++ b/arch/x86/kvm/vmx/vmx.c > @@ -4834,7 +4834,10 @@ static void __vmx_vcpu_reset(struct kvm_vcpu *vcpu) > vmx->nested.posted_intr_nv = -1; > vmx->nested.vmxon_ptr = INVALID_GPA; > vmx->nested.current_vmptr = INVALID_GPA; > + > +#ifdef CONFIG_KVM_HYPERV > vmx->nested.hv_evmcs_vmptr = EVMPTR_INVALID; > +#endif > > vcpu->arch.microcode_version = 0x100000000ULL; > vmx->msr_ia32_feature_control_valid_bits = FEAT_CTL_LOCKED; > diff --git a/arch/x86/kvm/vmx/vmx.h b/arch/x86/kvm/vmx/vmx.h > index c2130d2c8e24..55addb8eef01 100644 > --- a/arch/x86/kvm/vmx/vmx.h > +++ b/arch/x86/kvm/vmx/vmx.h > @@ -241,9 +241,11 @@ struct nested_vmx { > bool guest_mode; > } smm; > > +#ifdef CONFIG_KVM_HYPERV > gpa_t hv_evmcs_vmptr; > struct kvm_host_map hv_evmcs_map; > struct hv_enlightened_vmcs *hv_evmcs; > +#endif > }; > > struct vcpu_vmx { Reviewed-by: Maxim Levitsky <mlevitsk@xxxxxxxxxx> Best regards, Maxim Levitsky