From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH 3/3] KVM: nVMX: check for null vmcs12 when L1 does invept Date: Thu, 20 Mar 2014 13:43:08 +0100 Message-ID: <532AE25C.5070008@redhat.com> References: <1395286089-5406-1-git-send-email-bsd@redhat.com> <1395286089-5406-4-git-send-email-bsd@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: Gleb Natapov , Jan Kiszka To: Bandan Das , kvm@vger.kernel.org Return-path: Received: from mx1.redhat.com ([209.132.183.28]:32571 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757256AbaCTMnR (ORCPT ); Thu, 20 Mar 2014 08:43:17 -0400 In-Reply-To: <1395286089-5406-4-git-send-email-bsd@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 20/03/2014 04:28, Bandan Das ha scritto: > Some L1 hypervisors such as Xen seem to be calling invept after > vmclear or before vmptrld on L2. In this case, proceed with > falling through and syncing roots as a case where > context wide invalidation can't be supported > > Signed-off-by: Bandan Das > --- > 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 c707389..b407b3a 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -6435,8 +6435,9 @@ static int handle_invept(struct kvm_vcpu *vcpu) > > switch (type) { > case VMX_EPT_EXTENT_CONTEXT: > - if ((operand.eptp & eptp_mask) != > - (nested_ept_get_cr3(vcpu) & eptp_mask)) > + if (get_vmcs12(vcpu) && > + ((operand.eptp & eptp_mask) != (nested_ept_get_cr3(vcpu) & > + eptp_mask))) > break; > case VMX_EPT_EXTENT_GLOBAL: > kvm_mmu_sync_roots(vcpu); > Please add a /* fall through */ comment as well. Paolo