centralize the calls to cpu->accel_cpu_interface Signed-off-by: Claudio Fontana <cfont...@suse.de> --- hw/core/cpu.c | 9 +++++++++ include/hw/core/cpu.h | 6 ++++++ target/i386/cpu.c | 9 ++------- 3 files changed, 17 insertions(+), 7 deletions(-)
diff --git a/hw/core/cpu.c b/hw/core/cpu.c index f41c009e6c..873cf5e4ef 100644 --- a/hw/core/cpu.c +++ b/hw/core/cpu.c @@ -242,6 +242,15 @@ void cpu_reset(CPUState *cpu) trace_guest_cpu_reset(cpu); } +void cpu_accel_instance_init(CPUState *cpu) +{ + CPUClass *cc = CPU_GET_CLASS(cpu); + + if (cc->accel_cpu_interface) { + cc->accel_cpu_interface->cpu_instance_init(cpu); + } +} + static void cpu_common_reset(DeviceState *dev) { CPUState *cpu = CPU(dev); diff --git a/include/hw/core/cpu.h b/include/hw/core/cpu.h index 97e1dd8279..cc05c8fc96 100644 --- a/include/hw/core/cpu.h +++ b/include/hw/core/cpu.h @@ -664,6 +664,12 @@ void cpu_list_remove(CPUState *cpu); */ void cpu_reset(CPUState *cpu); +/** + * cpu_accel_instance_init: + * @cpu: The CPU that needs to do accel-specific object initializations. + */ +void cpu_accel_instance_init(CPUState *cpu); + /** * cpu_class_by_name: * @typename: The CPU base type. diff --git a/target/i386/cpu.c b/target/i386/cpu.c index aabb8edfe0..e2f16a1f37 100644 --- a/target/i386/cpu.c +++ b/target/i386/cpu.c @@ -28,7 +28,6 @@ #include "sysemu/kvm.h" #include "sysemu/reset.h" #include "sysemu/hvf.h" -#include "hw/core/accel-cpu.h" #include "sysemu/xen.h" #include "kvm/kvm_i386.h" #include "sev_i386.h" @@ -6621,8 +6620,6 @@ static void x86_cpu_initfn(Object *obj) { X86CPU *cpu = X86_CPU(obj); X86CPUClass *xcc = X86_CPU_GET_CLASS(obj); - CPUClass *cc = CPU_CLASS(xcc); - CPUX86State *env = &cpu->env; FeatureWord w; @@ -6680,10 +6677,8 @@ static void x86_cpu_initfn(Object *obj) x86_cpu_load_model(cpu, xcc->model); } - /* if required, do the accelerator-specific cpu initialization */ - if (cc->accel_cpu_interface) { - cc->accel_cpu_interface->cpu_instance_init(CPU(obj)); - } + /* if required, do accelerator-specific cpu initializations */ + cpu_accel_instance_init(CPU(obj)); } static int64_t x86_cpu_get_arch_id(CPUState *cs) -- 2.26.2