KVM: Fix cpuid feature misreporting
authorAvi Kivity <avi@redhat.com>
Mon, 3 Aug 2009 17:57:57 +0000 (14:57 -0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 9 Sep 2009 03:33:33 +0000 (20:33 -0700)
(cherry picked from commit 8d753f369bd28fff1706ffe9fb9fea4fd88cf85b)

MTRR, PAT, MCE, and MCA are all supported (to some extent) but not reported.
Vista requires these features, so if userspace relies on kernel cpuid
reporting, it loses support for Vista.

Signed-off-by: Avi Kivity <avi@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kvm/x86.c

index 607779f776a851218907d1aa3467870faff92869..769052f0a3f4ea275ab18142e84d3cee3e34ac01 100644 (file)
@@ -1256,9 +1256,12 @@ static void do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function,
                bit(X86_FEATURE_VME) | bit(X86_FEATURE_DE) |
                bit(X86_FEATURE_PSE) | bit(X86_FEATURE_TSC) |
                bit(X86_FEATURE_MSR) | bit(X86_FEATURE_PAE) |
+               bit(X86_FEATURE_MCE) |
                bit(X86_FEATURE_CX8) | bit(X86_FEATURE_APIC) |
-               bit(X86_FEATURE_SEP) | bit(X86_FEATURE_PGE) |
-               bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PSE36) |
+               bit(X86_FEATURE_SEP) | bit(X86_FEATURE_MTRR) |
+               bit(X86_FEATURE_PGE) | bit(X86_FEATURE_MCA) |
+               bit(X86_FEATURE_CMOV) | bit(X86_FEATURE_PAT) |
+               bit(X86_FEATURE_PSE36) |
                bit(X86_FEATURE_CLFLSH) | bit(X86_FEATURE_MMX) |
                bit(X86_FEATURE_FXSR) | bit(X86_FEATURE_XMM) |
                bit(X86_FEATURE_XMM2) | bit(X86_FEATURE_SELFSNOOP);