[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)
>