From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42098) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xns6b-0005Jk-DL for qemu-devel@nongnu.org; Mon, 10 Nov 2014 11:46:23 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Xns6V-0003oo-7M for qemu-devel@nongnu.org; Mon, 10 Nov 2014 11:46:17 -0500 Received: from cantor2.suse.de ([195.135.220.15]:41299 helo=mx2.suse.de) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Xns6V-0003oa-0U for qemu-devel@nongnu.org; Mon, 10 Nov 2014 11:46:11 -0500 From: Alexander Graf Date: Mon, 10 Nov 2014 17:46:08 +0100 Message-Id: <1415637969-47244-2-git-send-email-agraf@suse.de> In-Reply-To: <1415637969-47244-1-git-send-email-agraf@suse.de> References: <1415637969-47244-1-git-send-email-agraf@suse.de> Subject: [Qemu-devel] [PATCH 2.2 1/2] linux-user: Fix timer creation tswap List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: tommusta@gmail.com, riku.voipio@iki.fi The timer pointer field we're writing a new timer ID into is of field abi_ulong which means we need to swab 64bits on 64bit ABI targets. Change the tswap from 32 to l to give us correct foreign-endian results. Signed-off-by: Alexander Graf --- linux-user/syscall.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index a175cc1..f3e22c8 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -9604,7 +9604,7 @@ abi_long do_syscall(void *cpu_env, int num, abi_long arg1, if (!lock_user_struct(VERIFY_WRITE, ptarget_timer, arg3, 1)) { goto efault; } - ptarget_timer->ptr = tswap32(0xcafe0000 | timer_index); + ptarget_timer->ptr = tswapl(0xcafe0000 | timer_index); unlock_user_struct(ptarget_timer, arg3, 1); } } -- 1.7.12.4