The PC CPU initialization code already sets apic-id based on the CPU
topology, and CONFIG_USER doesn't need the topology-based APIC ID
calculation code.

Make CONFIG_USER set apic-id before realizing the CPU (just like PC
already does), so we can simplify x86_cpu_initfn later. As there is no
CPU topology configuration in CONFIG_USER, just use cpu_index as the
APIC ID.

Signed-off-by: Eduardo Habkost <ehabk...@redhat.com>
Cc: Gu Zheng <guz.f...@cn.fujitsu.com>
---
 target-i386/cpu.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/target-i386/cpu.c b/target-i386/cpu.c
index bb9525d..4b0e0a5 100644
--- a/target-i386/cpu.c
+++ b/target-i386/cpu.c
@@ -2161,6 +2161,12 @@ CPUX86State *cpu_x86_init_user(const char *cpu_model)
         goto out;
     }
 
+    object_property_set_int(OBJECT(cpu), CPU(cpu)->cpu_index, "apic-id",
+                            &error);
+    if (error) {
+        goto out;
+    }
+
     object_property_set_bool(OBJECT(cpu), true, "realized", &error);
 
 out:
-- 
1.9.3


Reply via email to