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