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 1f01090..f17fd36 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2159,6 +2159,12 @@ CPUX86State *cpu_x86_init_user(const char *cpu_model) goto error; } + object_property_set_int(OBJECT(cpu), CPU(cpu)->cpu_index, "apic-id", + &error); + if (error) { + goto error; + } + object_property_set_bool(OBJECT(cpu), true, "realized", &error); if (error) { goto error; -- 2.1.0