From patchwork Wed Jul 1 08:07:51 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sheng Yang X-Patchwork-Id: 33424 Received: from vger.kernel.org (vger.kernel.org [209.132.176.167]) by demeter.kernel.org (8.14.2/8.14.2) with ESMTP id n6188PJA029197 for ; Wed, 1 Jul 2009 08:08:25 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753129AbZGAIIJ (ORCPT ); Wed, 1 Jul 2009 04:08:09 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1753236AbZGAIII (ORCPT ); Wed, 1 Jul 2009 04:08:08 -0400 Received: from mga02.intel.com ([134.134.136.20]:60064 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752653AbZGAIIH (ORCPT ); Wed, 1 Jul 2009 04:08:07 -0400 Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga101.jf.intel.com with ESMTP; 01 Jul 2009 00:58:24 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.42,322,1243839600"; d="scan'208";a="529300434" Received: from syang10-desktop.sh.intel.com (HELO syang10-desktop) ([10.239.13.29]) by orsmga001.jf.intel.com with ESMTP; 01 Jul 2009 01:07:53 -0700 Received: from yasker by syang10-desktop with local (Exim 4.69) (envelope-from ) id 1MLur9-0006dQ-Rf; Wed, 01 Jul 2009 16:07:51 +0800 From: Sheng Yang To: Avi Kivity Cc: Marcelo Tosatti , kvm@vger.kernel.org, Sheng Yang Subject: [PATCH] KVM: Fix IA32e Windows can't boot issue Date: Wed, 1 Jul 2009 16:07:51 +0800 Message-Id: <1246435671-25485-1-git-send-email-sheng@linux.intel.com> X-Mailer: git-send-email 1.6.0.4 Sender: kvm-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org One typo in commit: "KVM: convert custom marker based tracing to event traces" caused: set_cr8: #GP, reserved bits 0x7f when try to boot up IA32e Windows guest. One value has been written to R8 instead of specific register, then the value of specific register can be invalid as CR8. Guest RMW it, then got trouble. Signed-off-by: Sheng Yang --- arch/x86/kvm/vmx.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c index 119fa47..3a75db3 100644 --- a/arch/x86/kvm/vmx.c +++ b/arch/x86/kvm/vmx.c @@ -2903,7 +2903,7 @@ static int handle_cr(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) return 1; case 8: val = kvm_get_cr8(vcpu); - kvm_register_write(vcpu, cr, val); + kvm_register_write(vcpu, reg, val); trace_kvm_cr_read(cr, val); skip_emulated_instruction(vcpu); return 1;