From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joseph Cihula Subject: [PATCH] kvm: fix detection of BIOS disabling VMX Date: Tue, 08 Feb 2011 11:45:56 -0800 Message-ID: <4D519D74.1010701@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: shane.wang@intel.com, joseph.cihula@intel.com To: avi@redhat.com, mtosatti@redhat.com, kvm@vger.kernel.org Return-path: Received: from mga09.intel.com ([134.134.136.24]:46186 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754125Ab1BHTp5 (ORCPT ); Tue, 8 Feb 2011 14:45:57 -0500 Sender: kvm-owner@vger.kernel.org List-ID: This patch fixes the logic used to detect whether BIOS has disabled VMX. Signed-off-by: Joseph Cihula diff -uprN linux-2.6.38-rc3/arch/x86/kvm/vmx.c linux-2.6.38-rc3-patched/arch/x86/kvm/vmx.c --- linux-2.6.38-rc3/arch/x86/kvm/vmx.c 2011-01-31 19:05:49.000000000 -0800 +++ linux-2.6.38-rc3-patched/arch/x86/kvm/vmx.c 2011-02-08 09:21:22.639995662 -0800 @@ -1333,19 +1333,25 @@ static __init int vmx_disabled_by_bios(v rdmsrl(MSR_IA32_FEATURE_CONTROL, msr); if (msr & FEATURE_CONTROL_LOCKED) { + /* launched w/ TXT and VMX disabled */ if (!(msr & FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX) && tboot_enabled()) return 1; + /* launched w/o TXT and VMX only enabled w/ TXT */ if (!(msr & FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX) + && (msr & FEATURE_CONTROL_VMXON_ENABLED_INSIDE_SMX) && !tboot_enabled()) { printk(KERN_WARNING "kvm: disable TXT in the BIOS or " - " activate TXT before enabling KVM\n"); + "activate TXT before enabling KVM\n"); return 1; } + /* launched w/o TXT and VMX disabled */ + if (!(msr & FEATURE_CONTROL_VMXON_ENABLED_OUTSIDE_SMX) + && !tboot_enabled()) + return 1; } return 0; - /* locked but not enabled */ } static void kvm_cpu_vmxon(u64 addr)