From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:35364) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlksR-0003ON-Gg for qemu-devel@nongnu.org; Wed, 27 Nov 2013 14:34:29 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VlksL-0006pI-I4 for qemu-devel@nongnu.org; Wed, 27 Nov 2013 14:34:23 -0500 Received: from mx1.redhat.com ([209.132.183.28]:22464) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VlksL-0006p8-9v for qemu-devel@nongnu.org; Wed, 27 Nov 2013 14:34:17 -0500 From: Eduardo Habkost Date: Wed, 27 Nov 2013 17:34:04 -0200 Message-Id: <1385580849-10777-3-git-send-email-ehabkost@redhat.com> In-Reply-To: <1385580849-10777-1-git-send-email-ehabkost@redhat.com> References: <1385580849-10777-1-git-send-email-ehabkost@redhat.com> Subject: [Qemu-devel] [PATCH 2/7] target-i386: Don't change x86_def_t struct on cpu_x86_register() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, =?UTF-8?q?Andreas=20F=C3=A4rber?= Cc: Igor Mammedov , Jiri Denemark As eventually the x86_def_t data is going to be provided by the CPU class, it's better to not touch it, and handle the special cases on the X86CPU object itself. Current behavior of the code should stay exactly the same. Signed-off-by: Eduardo Habkost --- target-i386/cpu.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index b525592..bfe2453 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -1822,11 +1822,6 @@ static void cpu_x86_register(X86CPU *cpu, const char *name, Error **errp) return; } - if (kvm_enabled()) { - def->features[FEAT_KVM] |= kvm_default_features; - } - def->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR; - object_property_set_str(OBJECT(cpu), def->vendor, "vendor", errp); object_property_set_int(OBJECT(cpu), def->level, "level", errp); object_property_set_int(OBJECT(cpu), def->family, "family", errp); @@ -1845,6 +1840,12 @@ static void cpu_x86_register(X86CPU *cpu, const char *name, Error **errp) cpu->cache_info_passthrough = def->cache_info_passthrough; object_property_set_str(OBJECT(cpu), def->model_id, "model-id", errp); + + /* Special cases not set in the x86_def_t structs: */ + if (kvm_enabled()) { + env->features[FEAT_KVM] |= kvm_default_features; + } + env->features[FEAT_1_ECX] |= CPUID_EXT_HYPERVISOR; } X86CPU *cpu_x86_create(const char *cpu_model, DeviceState *icc_bridge, -- 1.8.3.1