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