From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v3 10/13] nEPT: Nested INVEPT Date: Mon, 20 May 2013 14:46:46 +0200 Message-ID: <519A1B36.20807@redhat.com> References: <1368939152-11406-1-git-send-email-jun.nakajima@intel.com> <1368939152-11406-10-git-send-email-jun.nakajima@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, Gleb Natapov To: Jun Nakajima Return-path: Received: from mx1.redhat.com ([209.132.183.28]:38416 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755920Ab3ETMqx (ORCPT ); Mon, 20 May 2013 08:46:53 -0400 In-Reply-To: <1368939152-11406-10-git-send-email-jun.nakajima@intel.com> Sender: kvm-owner@vger.kernel.org List-ID: Il 19/05/2013 06:52, Jun Nakajima ha scritto: > + switch (type) { > + case VMX_EPT_EXTENT_GLOBAL: > + if (!(nested_vmx_ept_caps & VMX_EPT_EXTENT_GLOBAL_BIT)) > + nested_vmx_failValid(vcpu, > + VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID); > + else { > + /* > + * Do nothing: when L1 changes EPT12, we already > + * update EPT02 (the shadow EPT table) and call INVEPT. > + * So when L1 calls INVEPT, there's nothing left to do. > + */ > + nested_vmx_succeed(vcpu); > + } > + break; Duplicate code: switch (type) { case VMX_EPT_EXTENT_GLOBAL ok = (nested_vmx_ept_caps & VMX_EPT_EXTENT_GLOBAL_BIT) != 0; break; ... default: ok = false; break; } if (ok) { /* Do nothing: ... */ nested_vmx_succeed(vcpu); } else { nested_vmx_failValid(vcpu, ...); } break; Paolo > + case VMX_EPT_EXTENT_CONTEXT: > + if (!(nested_vmx_ept_caps & VMX_EPT_EXTENT_CONTEXT_BIT)) > + nested_vmx_failValid(vcpu, > + VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID); > + else { > + /* Do nothing */ > + nested_vmx_succeed(vcpu); > + } > + break; > + case VMX_EPT_EXTENT_INDIVIDUAL_ADDR: > + if (!(nested_vmx_ept_caps & VMX_EPT_EXTENT_INDIVIDUAL_BIT)) > + nested_vmx_failValid(vcpu, > + VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID); > + else { > + /* Do nothing */ > + nested_vmx_succeed(vcpu); > + } > + break; > + default: > + nested_vmx_failValid(vcpu, > + VMXERR_INVALID_OPERAND_TO_INVEPT_INVVPID);