qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 05/15] bsd-user/elfload.c: Don't use ldl() or ld


From: Alex Bennée
Subject: Re: [Qemu-devel] [PATCH 05/15] bsd-user/elfload.c: Don't use ldl() or ldq_raw()
Date: Thu, 15 Jan 2015 15:57:01 +0000

Peter Maydell <address@hidden> writes:

> Use get_user_u64() and get_user_ual() instead of the ldl() and
> ldq_raw() functions.
>
> [Note that this change is not compile tested as it is actually
> in dead code -- none of the bsd-user configurations are PPC.]
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Alex Bennée <address@hidden>

> ---
>  bsd-user/elfload.c | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c
> index 93fd9e4..2bf57eb 100644
> --- a/bsd-user/elfload.c
> +++ b/bsd-user/elfload.c
> @@ -351,8 +351,10 @@ static inline void init_thread(struct target_pt_regs 
> *_regs, struct image_info *
>  
>      _regs->gpr[1] = infop->start_stack;
>  #if defined(TARGET_PPC64) && !defined(TARGET_ABI32)
> -    entry = ldq_raw(infop->entry) + infop->load_addr;
> -    toc = ldq_raw(infop->entry + 8) + infop->load_addr;
> +    get_user_u64(entry, infop->entry);
> +    entry += infop->load_addr;
> +    get_user_u64(toc, infop->entry + 8);
> +    toc += infop->load_addr;
>      _regs->gpr[2] = toc;
>      infop->entry = entry;
>  #endif
> @@ -365,8 +367,9 @@ static inline void init_thread(struct target_pt_regs 
> *_regs, struct image_info *
>      get_user_ual(_regs->gpr[3], pos);
>      pos += sizeof(abi_ulong);
>      _regs->gpr[4] = pos;
> -    for (tmp = 1; tmp != 0; pos += sizeof(abi_ulong))
> -        tmp = ldl(pos);
> +    for (tmp = 1; tmp != 0; pos += sizeof(abi_ulong)) {
> +        get_user_ual(tmp, pos);
> +    }
>      _regs->gpr[5] = pos;
>  }

-- 
Alex Bennée



reply via email to

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