target-i386: Set APIC ID using cpu_index on CONFIG_USER
authorEduardo Habkost <ehabkost@redhat.com>
Fri, 19 Dec 2014 01:28:45 +0000 (23:28 -0200)
committerEduardo Habkost <ehabkost@redhat.com>
Wed, 25 Feb 2015 18:00:07 +0000 (15:00 -0300)
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.

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
target-i386/cpu.c

index e8cd7b38bada2b3c79c096c8080940691ca096b0..3e0c39c8bd911aee14516845c78c3c187aa51aef 100644 (file)
@@ -2145,6 +2145,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;