From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755773AbcBCXMY (ORCPT ); Wed, 3 Feb 2016 18:12:24 -0500 Received: from inet-orm.provo.novell.com ([137.65.248.124]:40016 "EHLO mail.novell.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754874AbcBCXMU (ORCPT ); Wed, 3 Feb 2016 18:12:20 -0500 X-Greylist: delayed 1215 seconds by postgrey-1.27 at vger.kernel.org; Wed, 03 Feb 2016 18:12:20 EST From: Bruce Rogers To: kvm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: jan.kiszka@siemens.com, namit@cs.technion.ac.il, Bruce Rogers Subject: [PATCH 1/2] KVM: x86: fix ordering of cr0 initialization code in vmx_cpu_reset Date: Wed, 3 Feb 2016 15:51:15 -0700 Message-Id: <1454539876-8310-1-git-send-email-brogers@suse.com> X-Mailer: git-send-email 1.9.0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit d28bc9dd25ce reversed the order of two lines which initialize cr0, allowing the current (old) cr0 value to mess up vcpu initialization. This was observed in the checks for cr0 X86_CR0_WP bit in the context of kvm_mmu_reset_context(). Besides, setting vcpu->arch.cr0 after vmx_set_cr0() is completely redundant. Change the order back to ensure proper vcpu intiialization. Signed-off-by: Bruce Rogers --- 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 e2951b6..21507b4 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -4993,8 +4993,8 @@ static void vmx_vcpu_reset(struct kvm_vcpu *vcpu, bool init_event) vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid); cr0 = X86_CR0_NW | X86_CR0_CD | X86_CR0_ET; - vmx_set_cr0(vcpu, cr0); /* enter rmode */ vmx->vcpu.arch.cr0 = cr0; + vmx_set_cr0(vcpu, cr0); /* enter rmode */ vmx_set_cr4(vcpu, 0); vmx_set_efer(vcpu, 0); vmx_fpu_activate(vcpu); -- 1.9.0