diff mbox series

[v2,4/7] mips: call cpu_mips_realize_env() from mips_cpu_realizefn()

Message ID 20170830225225.27925-5-f4bug@amsat.org
State New
Headers show
Series [v2,1/7] mips: move hw/mips/cputimer.c to target/mips/ | expand

Commit Message

Philippe Mathieu-Daudé Aug. 30, 2017, 10:52 p.m. UTC
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Tested-by: Igor Mammedov <imammedo@redhat.com>
Tested-by: James Hogan <james.hogan@imgtec.com>
---
 target/mips/cpu.c       | 3 +++
 target/mips/translate.c | 1 -
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Eduardo Habkost Sept. 15, 2017, 11:50 p.m. UTC | #1
On Wed, Aug 30, 2017 at 07:52:22PM -0300, Philippe Mathieu-Daudé wrote:
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> Tested-by: Igor Mammedov <imammedo@redhat.com>
> Tested-by: James Hogan <james.hogan@imgtec.com>
> ---
>  target/mips/cpu.c       | 3 +++
>  target/mips/translate.c | 1 -
>  2 files changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/target/mips/cpu.c b/target/mips/cpu.c
> index 68bf423e9d..e3ef835599 100644
> --- a/target/mips/cpu.c
> +++ b/target/mips/cpu.c
> @@ -123,6 +123,7 @@ static void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info) {
>  static void mips_cpu_realizefn(DeviceState *dev, Error **errp)
>  {
>      CPUState *cs = CPU(dev);
> +    MIPSCPU *cpu = MIPS_CPU(dev);
>      MIPSCPUClass *mcc = MIPS_CPU_GET_CLASS(dev);
>      Error *local_err = NULL;
>  
> @@ -132,6 +133,8 @@ static void mips_cpu_realizefn(DeviceState *dev, Error **errp)
>          return;
>      }
>  
> +    cpu_mips_realize_env(&cpu->env);
> +

This changes the order between cpu_mips_realize_env() and
cpu_exec_initfn(), but cpu_exec_initfn() don't have anything that
depends on cpu_mips_realize_env() being called first.

Reviewed-by: Eduardo Habkost <ehabkost@redhat.com>

>      cpu_reset(cs);
>      qemu_init_vcpu(cs);
>  
> diff --git a/target/mips/translate.c b/target/mips/translate.c
> index 5fc7979ac5..94c38e8755 100644
> --- a/target/mips/translate.c
> +++ b/target/mips/translate.c
> @@ -20535,7 +20535,6 @@ MIPSCPU *cpu_mips_init(const char *cpu_model)
>      cpu = MIPS_CPU(object_new(TYPE_MIPS_CPU));
>      env = &cpu->env;
>      env->cpu_model = def;
> -    cpu_mips_realize_env(env);
>  
>      object_property_set_bool(OBJECT(cpu), true, "realized", NULL);
>  
> -- 
> 2.14.1
> 
>
diff mbox series

Patch

diff --git a/target/mips/cpu.c b/target/mips/cpu.c
index 68bf423e9d..e3ef835599 100644
--- a/target/mips/cpu.c
+++ b/target/mips/cpu.c
@@ -123,6 +123,7 @@  static void mips_cpu_disas_set_info(CPUState *s, disassemble_info *info) {
 static void mips_cpu_realizefn(DeviceState *dev, Error **errp)
 {
     CPUState *cs = CPU(dev);
+    MIPSCPU *cpu = MIPS_CPU(dev);
     MIPSCPUClass *mcc = MIPS_CPU_GET_CLASS(dev);
     Error *local_err = NULL;
 
@@ -132,6 +133,8 @@  static void mips_cpu_realizefn(DeviceState *dev, Error **errp)
         return;
     }
 
+    cpu_mips_realize_env(&cpu->env);
+
     cpu_reset(cs);
     qemu_init_vcpu(cs);
 
diff --git a/target/mips/translate.c b/target/mips/translate.c
index 5fc7979ac5..94c38e8755 100644
--- a/target/mips/translate.c
+++ b/target/mips/translate.c
@@ -20535,7 +20535,6 @@  MIPSCPU *cpu_mips_init(const char *cpu_model)
     cpu = MIPS_CPU(object_new(TYPE_MIPS_CPU));
     env = &cpu->env;
     env->cpu_model = def;
-    cpu_mips_realize_env(env);
 
     object_property_set_bool(OBJECT(cpu), true, "realized", NULL);