From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53761) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBm8e-0004GN-70 for qemu-devel@nongnu.org; Thu, 15 Jan 2015 10:15:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YBm8W-0003fL-P7 for qemu-devel@nongnu.org; Thu, 15 Jan 2015 10:15:12 -0500 Received: from mnementh.archaic.org.uk ([2001:8b0:1d0::1]:54864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YBm8W-0003XX-IW for qemu-devel@nongnu.org; Thu, 15 Jan 2015 10:15:04 -0500 From: Peter Maydell Date: Thu, 15 Jan 2015 15:01:48 +0000 Message-Id: <1421334118-3287-6-git-send-email-peter.maydell@linaro.org> In-Reply-To: <1421334118-3287-1-git-send-email-peter.maydell@linaro.org> References: <1421334118-3287-1-git-send-email-peter.maydell@linaro.org> Subject: [Qemu-devel] [PATCH 05/15] bsd-user/elfload.c: Don't use ldl() or ldq_raw() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Paolo Bonzini , Riku Voipio , Richard Henderson , patches@linaro.org 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 --- 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; } -- 1.9.1