[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v10 30/32] cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_rea
From: |
Claudio Fontana |
Subject: |
[PATCH v10 30/32] cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn |
Date: |
Thu, 10 Dec 2020 13:12:24 +0100 |
move the call to the accel_cpu_interface method to the general
cpu_exec_realizefn from target/i386, so it does not need to be
called for every target explicitly as we enable more targets.
Signed-off-by: Claudio Fontana <cfontana@suse.de>
---
cpu.c | 5 +++++
target/i386/cpu.c | 15 ++++-----------
2 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/cpu.c b/cpu.c
index 5cc8f181be..a59a909cfe 100644
--- a/cpu.c
+++ b/cpu.c
@@ -130,6 +130,11 @@ void cpu_exec_realizefn(CPUState *cpu, Error **errp)
cpu_list_add(cpu);
+ if (cc->accel_cpu_interface) {
+ /* NB: errp parameter is unused currently */
+ cc->accel_cpu_interface->cpu_realizefn(cpu, errp);
+ }
+
#ifdef CONFIG_TCG
/* NB: errp parameter is unused currently */
if (tcg_enabled()) {
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
index 5414523651..0fedf6c160 100644
--- a/target/i386/cpu.c
+++ b/target/i386/cpu.c
@@ -6280,16 +6280,16 @@ static void x86_cpu_filter_features(X86CPU *cpu, bool
verbose)
static void x86_cpu_realizefn(DeviceState *dev, Error **errp)
{
CPUState *cs = CPU(dev);
- CPUClass *cc = CPU_GET_CLASS(cs);
X86CPU *cpu = X86_CPU(dev);
X86CPUClass *xcc = X86_CPU_GET_CLASS(dev);
CPUX86State *env = &cpu->env;
Error *local_err = NULL;
static bool ht_warned;
- /* The accelerator realizefn needs to be called first. */
- if (cc->accel_cpu_interface) {
- cc->accel_cpu_interface->cpu_realizefn(cs, errp);
+ cpu_exec_realizefn(cs, &local_err);
+ if (local_err != NULL) {
+ error_propagate(errp, local_err);
+ return;
}
if (xcc->host_cpuid_required && !accel_uses_host_cpuid()) {
@@ -6405,13 +6405,6 @@ static void x86_cpu_realizefn(DeviceState *dev, Error
**errp)
env->cache_info_amd.l3_cache = &legacy_l3_cache;
}
-
- cpu_exec_realizefn(cs, &local_err);
- if (local_err != NULL) {
- error_propagate(errp, local_err);
- return;
- }
-
#ifndef CONFIG_USER_ONLY
MachineState *ms = MACHINE(qdev_get_machine());
qemu_register_reset(x86_cpu_machine_reset_cb, cpu);
--
2.26.2
- Re: [PATCH v10 24/32] cpu: move cc->transaction_failed to tcg_ops, (continued)
[PATCH v10 25/32] cpu: move do_unaligned_access to tcg_ops, Claudio Fontana, 2020/12/10
[PATCH v10 19/32] cpu: Move cpu_exec_* to tcg_ops, Claudio Fontana, 2020/12/10
[PATCH v10 20/32] cpu: Move tlb_fill to tcg_ops, Claudio Fontana, 2020/12/10
[PATCH v10 21/32] cpu: Move debug_excp_handler to tcg_ops, Claudio Fontana, 2020/12/10
[PATCH v10 30/32] cpu: call AccelCPUClass::cpu_realizefn in cpu_exec_realizefn,
Claudio Fontana <=
[PATCH v10 23/32] cpu: move cc->do_interrupt to tcg_ops, Claudio Fontana, 2020/12/10
[PATCH v10 27/32] accel: replace struct CpusAccel with AccelOpsClass, Claudio Fontana, 2020/12/10
[PATCH v10 26/32] accel: extend AccelState and AccelClass to user-mode, Claudio Fontana, 2020/12/10
[PATCH v10 31/32] hw/core/cpu: call qemu_init_vcpu in cpu_common_realizefn, Claudio Fontana, 2020/12/10
[PATCH v10 29/32] i386: split cpu accelerators from cpu.c, using AccelCPUClass, Claudio Fontana, 2020/12/10
[PATCH v10 28/32] accel: introduce AccelCPUClass extending CPUClass, Claudio Fontana, 2020/12/10
[PATCH v10 32/32] cpu: introduce cpu_accel_instance_init, Claudio Fontana, 2020/12/10
Re: [PATCH v10 00/32] i386 cleanup, Philippe Mathieu-Daudé, 2020/12/10