summaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/cpuid.h
diff options
context:
space:
mode:
authorNadav Amit <namit@cs.technion.ac.il>2014-05-07 15:32:50 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2014-05-07 17:25:22 +0200
commit5f7dde7bbb3c628766676cbd63c0a1834035d6fa (patch)
tree39fde3ae31697b7e1ef19af9f1d3d626d0f7e909 /arch/x86/kvm/cpuid.h
parenta4ab9d0cf1ef0bf521bb69099aa464f38c71393c (diff)
downloadop-kernel-dev-5f7dde7bbb3c628766676cbd63c0a1834035d6fa.zip
op-kernel-dev-5f7dde7bbb3c628766676cbd63c0a1834035d6fa.tar.gz
KVM: x86: Mark bit 7 in long-mode PDPTE according to 1GB pages support
In long-mode, bit 7 in the PDPTE is not reserved only if 1GB pages are supported by the CPU. Currently the bit is considered by KVM as always reserved. Signed-off-by: Nadav Amit <namit@cs.technion.ac.il> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'arch/x86/kvm/cpuid.h')
-rw-r--r--arch/x86/kvm/cpuid.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h
index eeecbed..f908731 100644
--- a/arch/x86/kvm/cpuid.h
+++ b/arch/x86/kvm/cpuid.h
@@ -88,4 +88,11 @@ static inline bool guest_cpuid_has_x2apic(struct kvm_vcpu *vcpu)
return best && (best->ecx & bit(X86_FEATURE_X2APIC));
}
+static inline bool guest_cpuid_has_gbpages(struct kvm_vcpu *vcpu)
+{
+ struct kvm_cpuid_entry2 *best;
+
+ best = kvm_find_cpuid_entry(vcpu, 0x80000001, 0);
+ return best && (best->edx & bit(X86_FEATURE_GBPAGES));
+}
#endif
OpenPOWER on IntegriCloud