target-i386: Set APIC ID using cpu_index on CONFIG_USER

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.

Backports commit 9c235e83f1c3437be6ca45755909efb745c10deb from qemu
This commit is contained in:
Eduardo Habkost 2018-02-12 15:46:03 -05:00 committed by Lioncash
parent 81cae9834a
commit ce36141f10
No known key found for this signature in database
GPG key ID: 4E3C3CC1031BA9C7

View file

@ -1815,7 +1815,17 @@ CPUX86State *cpu_x86_init_user(struct uc_struct *uc, const char *cpu_model)
goto error;
}
object_property_set_int(uc, OBJECT(cpu), CPU(cpu)->cpu_index, "apic-id",
&error);
if (error) {
goto error;
}
object_property_set_bool(uc, OBJECT(cpu), true, "realized", &error);
if (error) {
goto error;
}
return &cpu->env;
error: