summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--hw/ppc/spapr_cpu_core.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/hw/ppc/spapr_cpu_core.c b/hw/ppc/spapr_cpu_core.c
index 2f7dc3c23d..4f316a6f9d 100644
--- a/hw/ppc/spapr_cpu_core.c
+++ b/hw/ppc/spapr_cpu_core.c
@@ -277,8 +277,8 @@ static PowerPCCPU *spapr_create_vcpu(SpaprCpuCore *sc, int i, Error **errp)
{
SpaprCpuCoreClass *scc = SPAPR_CPU_CORE_GET_CLASS(sc);
CPUCore *cc = CPU_CORE(sc);
- Object *obj;
- char *id;
+ g_autoptr(Object) obj = NULL;
+ g_autofree char *id = NULL;
CPUState *cs;
PowerPCCPU *cpu;
@@ -293,23 +293,17 @@ static PowerPCCPU *spapr_create_vcpu(SpaprCpuCore *sc, int i, Error **errp)
cs->start_powered_off = true;
cs->cpu_index = cc->core_id + i;
if (!spapr_set_vcpu_id(cpu, cs->cpu_index, errp)) {
- goto err;
+ return NULL;
}
cpu->node_id = sc->node_id;
id = g_strdup_printf("thread[%d]", i);
object_property_add_child(OBJECT(sc), id, obj);
- g_free(id);
cpu->machine_data = g_new0(SpaprCpuState, 1);
- object_unref(obj);
return cpu;
-
-err:
- object_unref(obj);
- return NULL;
}
static void spapr_cpu_core_realize(DeviceState *dev, Error **errp)