aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86
diff options
context:
space:
mode:
authorEduardo Habkost <ehabkost@redhat.com>2008-11-17 16:03:16 -0500
committerAvi Kivity <avi@redhat.com>2008-12-31 09:52:28 -0500
commit6210e37b122583643da335c0389f74098713e5ca (patch)
tree779f5a7b90ffec49d2eda03c5f30cf6d79395766 /arch/x86
parenteca70fc5671b226966dfb7ee9953d59199288566 (diff)
KVM: VMX: move cpu_has_kvm_support() to an inline on asm/virtext.h
It will be used by core code on kdump and reboot, to disable vmx if needed. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86')
-rw-r--r--arch/x86/include/asm/virtext.h31
-rw-r--r--arch/x86/kvm/vmx.c4
2 files changed, 33 insertions, 2 deletions
diff --git a/arch/x86/include/asm/virtext.h b/arch/x86/include/asm/virtext.h
new file mode 100644
index 00000000000..298b6a06110
--- /dev/null
+++ b/arch/x86/include/asm/virtext.h
@@ -0,0 +1,31 @@
1/* CPU virtualization extensions handling
2 *
3 * This should carry the code for handling CPU virtualization extensions
4 * that needs to live in the kernel core.
5 *
6 * Author: Eduardo Habkost <ehabkost@redhat.com>
7 *
8 * Copyright (C) 2008, Red Hat Inc.
9 *
10 * Contains code from KVM, Copyright (C) 2006 Qumranet, Inc.
11 *
12 * This work is licensed under the terms of the GNU GPL, version 2. See
13 * the COPYING file in the top-level directory.
14 */
15#ifndef _ASM_X86_VIRTEX_H
16#define _ASM_X86_VIRTEX_H
17
18#include <asm/processor.h>
19#include <asm/system.h>
20
21/*
22 * VMX functions:
23 */
24
25static inline int cpu_has_vmx(void)
26{
27 unsigned long ecx = cpuid_ecx(1);
28 return test_bit(5, &ecx); /* CPUID.1:ECX.VMX[bit 5] -> VT */
29}
30
31#endif /* _ASM_X86_VIRTEX_H */
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index ec71f6464cf..defaeeb3f75 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -31,6 +31,7 @@
31#include <asm/io.h> 31#include <asm/io.h>
32#include <asm/desc.h> 32#include <asm/desc.h>
33#include <asm/vmx.h> 33#include <asm/vmx.h>
34#include <asm/virtext.h>
34 35
35#define __ex(x) __kvm_handle_fault_on_reboot(x) 36#define __ex(x) __kvm_handle_fault_on_reboot(x)
36 37
@@ -1044,8 +1045,7 @@ static int vmx_get_irq(struct kvm_vcpu *vcpu)
1044 1045
1045static __init int cpu_has_kvm_support(void) 1046static __init int cpu_has_kvm_support(void)
1046{ 1047{
1047 unsigned long ecx = cpuid_ecx(1); 1048 return cpu_has_vmx();
1048 return test_bit(5, &ecx); /* CPUID.1:ECX.VMX[bit 5] -> VT */
1049} 1049}
1050 1050
1051static __init int vmx_disabled_by_bios(void) 1051static __init int vmx_disabled_by_bios(void)