diff options
Diffstat (limited to 'arch/x86/kvm/cpuid.c')
-rw-r--r-- | arch/x86/kvm/cpuid.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c index ec79e773342e..a20ecb5b6cbf 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c | |||
@@ -320,6 +320,8 @@ static int do_cpuid_ent(struct kvm_cpuid_entry2 *entry, u32 function, | |||
320 | if (index == 0) { | 320 | if (index == 0) { |
321 | entry->ebx &= kvm_supported_word9_x86_features; | 321 | entry->ebx &= kvm_supported_word9_x86_features; |
322 | cpuid_mask(&entry->ebx, 9); | 322 | cpuid_mask(&entry->ebx, 9); |
323 | // TSC_ADJUST is emulated | ||
324 | entry->ebx |= F(TSC_ADJUST); | ||
323 | } else | 325 | } else |
324 | entry->ebx = 0; | 326 | entry->ebx = 0; |
325 | entry->eax = 0; | 327 | entry->eax = 0; |
@@ -659,6 +661,7 @@ void kvm_cpuid(struct kvm_vcpu *vcpu, u32 *eax, u32 *ebx, u32 *ecx, u32 *edx) | |||
659 | } else | 661 | } else |
660 | *eax = *ebx = *ecx = *edx = 0; | 662 | *eax = *ebx = *ecx = *edx = 0; |
661 | } | 663 | } |
664 | EXPORT_SYMBOL_GPL(kvm_cpuid); | ||
662 | 665 | ||
663 | void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) | 666 | void kvm_emulate_cpuid(struct kvm_vcpu *vcpu) |
664 | { | 667 | { |