From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eugene Korenevsky Subject: [PATCH 5/5] KVM: nVMX: VMWRITE emulation: remove unnecessary check for compatibility mode Date: Thu, 20 Aug 2015 22:38:20 +0300 Message-ID: <20150820193820.GA3593@unote> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Paolo Bonzini To: kvm@vger.kernel.org Return-path: Received: from mail-lb0-f173.google.com ([209.85.217.173]:36067 "EHLO mail-lb0-f173.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752764AbbHTTiX (ORCPT ); Thu, 20 Aug 2015 15:38:23 -0400 Received: by lbbpu9 with SMTP id pu9so30532365lbb.3 for ; Thu, 20 Aug 2015 12:38:21 -0700 (PDT) Content-Disposition: inline Sender: kvm-owner@vger.kernel.org List-ID: VMWRITE instruction is not valid in compatibility mode. This is checked by nested_vmx_check_permission() function which throws #UD if CS.L=0. The additional check in is_64_bit_mode() for CS.L=0 is useless. We should check only EFER.LMA=1 which is done by is_long_mode(). Signed-off-by: Eugene Korenevsky --- arch/x86/kvm/vmx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index f39e24f..12bdaae 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -7034,7 +7034,7 @@ static int handle_vmwrite(struct kvm_vcpu *vcpu) field_value = kvm_register_readl(vcpu, (((vmx_instruction_info) >> 3) & 0xf)); else { - mem_op_size = is_64_bit_mode(vcpu) ? 8 : 4; + mem_op_size = is_long_mode(vcpu) ? 8 : 4; if (get_vmx_mem_address(vcpu, exit_qualification, vmx_instruction_info, false, mem_op_size, &gva)) return 1; -- 2.1.4