From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56361) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ws9FI-00052Q-8k for qemu-devel@nongnu.org; Wed, 04 Jun 2014 07:20:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Ws9FC-0005sJ-Rc for qemu-devel@nongnu.org; Wed, 04 Jun 2014 07:20:40 -0400 Received: from mail-we0-x22f.google.com ([2a00:1450:400c:c03::22f]:58875) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Ws9FC-0005rs-9M for qemu-devel@nongnu.org; Wed, 04 Jun 2014 07:20:34 -0400 Received: by mail-we0-f175.google.com with SMTP id p10so8171431wes.6 for ; Wed, 04 Jun 2014 04:20:33 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 4 Jun 2014 13:20:12 +0200 Message-Id: <1401880812-818-12-git-send-email-pbonzini@redhat.com> In-Reply-To: <1401880812-818-1-git-send-email-pbonzini@redhat.com> References: <1401880812-818-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PULL 11/11] kvm: Fix eax for cpuid leaf 0x40000000 List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Jidong Xiao From: Jidong Xiao Since Linux kernel 3.5, KVM has documented eax for leaf 0x40000000 to be KVM_CPUID_FEATURES: https://github.com/torvalds/linux/commit/57c22e5f35aa4b9b2fe11f73f3e62bbf9ef36190 But qemu still tries to set it to 0. It would be better to make qemu and kvm consistent. This patch just fixes this issue. Signed-off-by: Jidong Xiao [Include kvm_base in the value. - Paolo] Signed-off-by: Paolo Bonzini --- target-i386/kvm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target-i386/kvm.c b/target-i386/kvm.c index 40cd4b8..4bf0ac9 100644 --- a/target-i386/kvm.c +++ b/target-i386/kvm.c @@ -532,7 +532,7 @@ int kvm_arch_init_vcpu(CPUState *cs) memcpy(signature, "KVMKVMKVM\0\0\0", 12); c = &cpuid_data.entries[cpuid_i++]; c->function = KVM_CPUID_SIGNATURE | kvm_base; - c->eax = 0; + c->eax = KVM_CPUID_FEATURES | kvm_base; c->ebx = signature[0]; c->ecx = signature[1]; c->edx = signature[2]; -- 1.8.3.1