d740ea
From 9903f2031b13dfeff37514197cdd56cbcb3431f4 Mon Sep 17 00:00:00 2001
d740ea
From: Eduardo Habkost <ehabkost@redhat.com>
d740ea
Date: Wed, 15 May 2019 15:53:55 +0200
d740ea
Subject: [PATCH 1/4] kvm: Fix eax for cpuid leaf 0x40000000
d740ea
d740ea
RH-Author: Eduardo Habkost <ehabkost@redhat.com>
d740ea
Message-id: <20190515155355.22182-2-ehabkost@redhat.com>
d740ea
Patchwork-id: 87888
d740ea
O-Subject: [RHEL-7.7 qemu-kvm PATCH 1/1] kvm: Fix eax for cpuid leaf 0x40000000
d740ea
Bugzilla: 1709495
d740ea
RH-Acked-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
d740ea
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
d740ea
RH-Acked-by: Sergio Lopez Pascual <slp@redhat.com>
d740ea
d740ea
From: Jidong Xiao <jidong.xiao@gmail.com>
d740ea
d740ea
Since Linux kernel 3.5, KVM has documented eax for leaf 0x40000000
d740ea
to be KVM_CPUID_FEATURES:
d740ea
d740ea
https://github.com/torvalds/linux/commit/57c22e5f35aa4b9b2fe11f73f3e62bbf9ef36190
d740ea
d740ea
But qemu still tries to set it to 0. It would be better to make qemu
d740ea
and kvm consistent. This patch just fixes this issue.
d740ea
d740ea
Signed-off-by: Jidong Xiao <jidong.xiao@gmail.com>
d740ea
[Include kvm_base in the value. - Paolo]
d740ea
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
d740ea
(cherry picked from commit 79b6f2f651d64a122dd647c1456635d5a6a176ac)
d740ea
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
d740ea
d740ea
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
d740ea
---
d740ea
 target-i386/kvm.c | 2 +-
d740ea
 1 file changed, 1 insertion(+), 1 deletion(-)
d740ea
d740ea
diff --git a/target-i386/kvm.c b/target-i386/kvm.c
d740ea
index 35a9cf4..d5f6deb 100644
d740ea
--- a/target-i386/kvm.c
d740ea
+++ b/target-i386/kvm.c
d740ea
@@ -532,7 +532,7 @@ int kvm_arch_init_vcpu(CPUState *cs)
d740ea
     memcpy(signature, "KVMKVMKVM\0\0\0", 12);
d740ea
     c = &cpuid_data.entries[cpuid_i++];
d740ea
     c->function = KVM_CPUID_SIGNATURE | kvm_base;
d740ea
-    c->eax = 0;
d740ea
+    c->eax = KVM_CPUID_FEATURES | kvm_base;
d740ea
     c->ebx = signature[0];
d740ea
     c->ecx = signature[1];
d740ea
     c->edx = signature[2];
d740ea
-- 
d740ea
1.8.3.1
d740ea