qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH qom v3 3/4] arm: boot: Use cpu_set_pc()


From: Peter Crosthwaite
Subject: Re: [Qemu-devel] [PATCH qom v3 3/4] arm: boot: Use cpu_set_pc()
Date: Wed, 24 Jun 2015 11:26:28 -0700

On Wed, Jun 24, 2015 at 11:22 AM, Andreas Färber <address@hidden> wrote:
> Am 24.06.2015 um 05:19 schrieb Peter Crosthwaite:
>> Use cpu_set_pc() across the board for setting program counters. This
>> removes instances of system level code having to reach into the CPU
>> env.
>>
>> Reviewed-by: Peter Maydell <address@hidden>
>> Reviewed-by: Andreas Färber <address@hidden>
>> Signed-off-by: Peter Crosthwaite <address@hidden>
>> ---
>> Changed since v2:
>> Add () to fn names in commit msg
>> Drop error argument
>> Changed since v1:
>> Lease thumb masking in boot.c
>> ---
>>  hw/arm/boot.c | 19 +++++++------------
>>  1 file changed, 7 insertions(+), 12 deletions(-)
>
> Any objection to avoiding repeated casts as follows?

No objection from me. Ack to the squash or can be respun.

Regards,
Peter

>
> --- a/hw/arm/boot.c
> +++ b/hw/arm/boot.c
> @@ -168,9 +168,11 @@ static void default_write_secondary(ARMCPU *cpu,
>  static void default_reset_secondary(ARMCPU *cpu,
>                                      const struct arm_boot_info *info)
>  {
> +    CPUState *cs = CPU(cpu);
> +
>      address_space_stl_notdirty(&address_space_memory,
> info->smp_bootreg_addr,
>                                 0, MEMTXATTRS_UNSPECIFIED, NULL);
> -    cpu_set_pc(CPU(cpu), info->smp_loader_start);
> +    cpu_set_pc(cs, info->smp_loader_start);
>  }
>
>  static inline bool have_dtb(const struct arm_boot_info *info)
> @@ -443,10 +445,11 @@ fail:
>  static void do_cpu_reset(void *opaque)
>  {
>      ARMCPU *cpu = opaque;
> +    CPUState *cs = CPU(cpu);
>      CPUARMState *env = &cpu->env;
>      const struct arm_boot_info *info = env->boot_info;
>
> -    cpu_reset(CPU(cpu));
> +    cpu_reset(cs);
>      if (info) {
>          if (!info->is_linux) {
>              /* Jump to the entry point.  */
> @@ -456,7 +459,7 @@ static void do_cpu_reset(void *opaque)
>                  env->thumb = info->entry & 1;
>                  entry &= 0xfffffffe;
>              }
> -            cpu_set_pc(CPU(cpu), entry);
> +            cpu_set_pc(cs, entry);
>          } else {
>              /* If we are booting Linux then we need to check whether we are
>               * booting into secure or non-secure state and adjust the state
> @@ -486,8 +489,8 @@ static void do_cpu_reset(void *opaque)
>                  }
>              }
>
> -            if (CPU(cpu) == first_cpu) {
> -                cpu_set_pc(CPU(cpu), info->loader_start);
> +            if (cs == first_cpu) {
> +                cpu_set_pc(cs, info->loader_start);
>
>                  if (!have_dtb(info)) {
>                      if (old_param) {
>
> Regards,
> Andreas
>
> --
> SUSE Linux GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Felix Imendörffer, Jane Smithard, Dilip Upmanyu, Graham Norton; HRB
> 21284 (AG Nürnberg)
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]