This series removes the APIC ID initialization code from x86_cpu_initfn() (getting us one step closer to making object_new() of X86CPU have no dependency on cpu_exec_init() and other global QEMU state), and moves the APIC ID compatibility logic from target-i386/cpu.c to hw/i386/pc.c.
Changes v3 -> v4: * Don't set apic_id = cpu_index on *-user, as it was undoned by cpu_copy() anyway (but keep requiring apic-id to be explicitly set on softmmu) Changes v2 -> v3: * Removed patches: * [PATCH v2 2/9] target-i386: Rename cpu_x86_init() to cpu_x86_init_user() * [PATCH v2 3/9] target-i386: Eliminate cpu_init() function * [PATCH v2 4/9] target-i386: Simplify error handling on cpu_x86_init_user() * Redone patch "target-i386: Set APIC ID using cpu_index on CONFIG_USER" using the existing error handling style Changes v1 -> v2: * Move topology.h to include/hw/i386 instead of hw/i386 * Instead of adding an apic_id_set field, make apic_id a int64_t field and set it to -1 by default * Check for cpu_init() errors on linux-user Eduardo Habkost (5): target-i386: Move topology.h to include/hw/i386 target-i386: Remove unused APIC ID default code target-i386: Move CPUX86State.cpuid_apic_id to X86CPU.apic_id target-i386: Move APIC ID compatibility code to pc.c target-i386: Require APIC ID to be explicitly set before CPU realize hw/i386/pc.c | 35 +++++++++++++++++ {target-i386 => include/hw/i386}/topology.h | 6 +-- target-i386/cpu-qom.h | 1 + target-i386/cpu.c | 60 ++++++++--------------------- target-i386/cpu.h | 1 - target-i386/kvm.c | 2 +- tests/Makefile | 2 - tests/test-x86-cpuid.c | 2 +- 8 files changed, 58 insertions(+), 51 deletions(-) rename {target-i386 => include/hw/i386}/topology.h (97%) -- 2.1.0