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 cpu_x86_init() (used only by 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> --- Changes v1 -> v2: none Changes v2 -> v3: * Use "goto out" instead of "goto error" after patch changing error handling was removed from the series --- target-i386/cpu.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/target-i386/cpu.c b/target-i386/cpu.c index 079ce60..c4a96b6 100644 --- a/target-i386/cpu.c +++ b/target-i386/cpu.c @@ -2159,6 +2159,12 @@ X86CPU *cpu_x86_init(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: -- 2.1.0