Patchwork [RFC,09/13] kill cpu_x86_register()

login
register
mail settings
Submitter Eduardo Habkost
Date Aug. 16, 2012, 4:59 p.m.
Message ID <1345136352-10756-10-git-send-email-ehabkost@redhat.com>
Download mbox | patch
Permalink /patch/178067/
State New
Headers show

Comments

Eduardo Habkost - Aug. 16, 2012, 4:59 p.m.
Merge it with cpu_x86_create().

Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
 target-i386/cpu.c | 42 ++++++++++++++++++------------------------
 target-i386/cpu.h |  1 -
 2 files changed, 18 insertions(+), 25 deletions(-)

Patch

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index c48de43..e7f32fc 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -1499,57 +1499,51 @@  CpuDefinitionInfoList *qmp_query_cpu_definitions(Error **errp)
     return cpu_list;
 }
 
-int cpu_x86_register(X86CPU *cpu, const char *cpu_model)
+X86CPU *cpu_x86_create(const char *cpu_model)
 {
+    X86CPU *cpu;
+    CPUX86State *env;
     X86CPUDefinition def1, *def = &def1;
     Error *error = NULL;
     QDict *features = NULL;
     char *name = NULL;
 
+    cpu = X86_CPU(object_new(TYPE_X86_CPU));
+    env = &cpu->env;
+    env->cpu_model_str = cpu_model;
+
     /* for CPU subclasses should go into cpu_x86_init() before object_new() */
     compat_normalize_cpu_model(cpu_model, &name, &features, &error);
     if (error_is_set(&error)) {
-        goto out;
+        goto error;
     }
 
     /* this block should be replaced by CPU subclasses */
     memset(def, 0, sizeof(*def));
     if (cpu_x86_find_by_name(cpu, def, name, &error) < 0) {
-        goto out;
+        goto error;
     }
     cpudef_2_x86_cpu(cpu, def, &error);
 
     /* for CPU subclasses should go between object_new() and
      * x86_cpu_realize() */
     cpu_x86_set_props(cpu, features, &error);
-
-out:
-    QDECREF(features);
-    g_free(name);
     if (error_is_set(&error)) {
-        fprintf(stderr, "%s\n", error_get_pretty(error));
-        error_free(error);
-        return -1;
-    }
-    return 0;
-}
-
-X86CPU *cpu_x86_create(const char *cpu_model)
-{
-    X86CPU *cpu;
-    CPUX86State *env;
-
-    cpu = X86_CPU(object_new(TYPE_X86_CPU));
-    env = &cpu->env;
-    env->cpu_model_str = cpu_model;
-
-    if (cpu_x86_register(cpu, cpu_model) < 0) {
         goto error;
     }
 
+    QDECREF(features);
+    g_free(name);
+
     x86_cpu_realize(OBJECT(cpu), NULL);
     return cpu;
 error:
+    QDECREF(features);
+    g_free(name);
+    if (error_is_set(&error)) {
+        fprintf(stderr, "%s\n", error_get_pretty(error));
+        error_free(error);
+    }
     object_delete(OBJECT(cpu));
     return NULL;
 }
diff --git a/target-i386/cpu.h b/target-i386/cpu.h
index 6f48ba8..f2ee814 100644
--- a/target-i386/cpu.h
+++ b/target-i386/cpu.h
@@ -925,7 +925,6 @@  void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count,
                    uint32_t *eax, uint32_t *ebx,
                    uint32_t *ecx, uint32_t *edx);
 X86CPU *cpu_x86_create(const char *cpu_model);
-int cpu_x86_register(X86CPU *cpu, const char *cpu_model);
 void cpu_clear_apic_feature(CPUX86State *env);
 void host_cpuid(uint32_t function, uint32_t count,
                 uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx);