From patchwork Wed Aug 13 19:04:39 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Musta X-Patchwork-Id: 379721 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id E5747140090 for ; Thu, 14 Aug 2014 05:08:02 +1000 (EST) Received: from localhost ([::1]:49678 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHdtw-0000XM-RB for incoming@patchwork.ozlabs.org; Wed, 13 Aug 2014 15:08:00 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:54843) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHdre-0004sK-Dr for qemu-devel@nongnu.org; Wed, 13 Aug 2014 15:05:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XHdrU-00044M-0o for qemu-devel@nongnu.org; Wed, 13 Aug 2014 15:05:38 -0400 Received: from mail-ob0-x22b.google.com ([2607:f8b0:4003:c01::22b]:62019) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XHdrT-00044C-RO; Wed, 13 Aug 2014 15:05:27 -0400 Received: by mail-ob0-f171.google.com with SMTP id wm4so151713obc.2 for ; Wed, 13 Aug 2014 12:05:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=M+SbS3h6peeSTumNIWK/e0AgH8P4r3cLlfB4R9Tg+vg=; b=ktpeLYYzWaLrqfu39D+r3MQ0r/VXzMEvT4giLWciWD7ZfPcksZNIZj7kKCfBJWtndS Annh4ghT6PUYOBre1dtjqvVP1FY7di4gkW/tWxjLgk/LW9ZbmBnscQeIq1HvOG8INoUk a3sa+aFWdNcA4MDVogLFVjVD36GjTuZ7Ajo0Rk0xLVI0zV+LnGjJXtNxqqMQ+XwCyEWT aw4z5H6MoOw1H+g5kGdXUDUhFFOySqGOvDuh6/E0rSGkCH3nS+XO+LpiTOymPf+kOZGf /FuJI12eDEhhhuqfWxsigceqVoHgQ9Rs9PHBuDxjawHNYyMv0JBJNXijqiOLFOSn4cq3 ZSHw== X-Received: by 10.182.143.67 with SMTP id sc3mr6972494obb.76.1407956727299; Wed, 13 Aug 2014 12:05:27 -0700 (PDT) Received: from tmusta-sc.rchland.ibm.com (rchp4.rochester.ibm.com. [129.42.161.36]) by mx.google.com with ESMTPSA id ej4sm3032727obb.28.2014.08.13.12.05.21 for (version=TLSv1.1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 13 Aug 2014 12:05:26 -0700 (PDT) From: Tom Musta To: qemu-devel@nongnu.org, qemu-ppc@nongnu.org Date: Wed, 13 Aug 2014 14:04:39 -0500 Message-Id: <1407956688-16006-5-git-send-email-tommusta@gmail.com> X-Mailer: git-send-email 1.7.9.5 In-Reply-To: <1407956688-16006-1-git-send-email-tommusta@gmail.com> References: <1407956688-16006-1-git-send-email-tommusta@gmail.com> X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address (bad octet value). X-Received-From: 2607:f8b0:4003:c01::22b Cc: Tom Musta , riku.voipio@linaro.org, agraf@suse.de Subject: [Qemu-devel] [V3 PATCH 04/13] linux-user: Make ipc syscall's third argument an abi_long X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org For those target ABIs that use the ipc system call (e.g. POWER), the third argument is used in the shmat path as a pointer. It therefore must be declared as an abi_long (versus int) so that the address bits are not lost in truncation. In fact, all arguments to do_ipc should be declared as abit_long. In fact, it makes more sense for all of the arguments to be declared as abi_long (except call). Signed-off-by: Tom Musta --- V2: Changed all do_ipc arguments (except "call") to abi_long per Peter Maydell's review. linux-user/syscall.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-) diff --git a/linux-user/syscall.c b/linux-user/syscall.c index bee1f4e..3a4f432 100644 --- a/linux-user/syscall.c +++ b/linux-user/syscall.c @@ -3125,8 +3125,8 @@ static inline abi_long do_shmdt(abi_ulong shmaddr) #ifdef TARGET_NR_ipc /* ??? This only works with linear mappings. */ /* do_ipc() must return target values and target errnos. */ -static abi_long do_ipc(unsigned int call, int first, - int second, int third, +static abi_long do_ipc(unsigned int call, abi_long first, + abi_long second, abi_long third, abi_long ptr, abi_long fifth) { int version; @@ -3148,9 +3148,9 @@ static abi_long do_ipc(unsigned int call, int first, /* The semun argument to semctl is passed by value, so dereference the * ptr argument. */ abi_ulong atptr; - get_user_ual(atptr, (abi_ulong)ptr); + get_user_ual(atptr, ptr); ret = do_semctl(first, second, third, - (union target_semun)(abi_ulong) atptr); + (union target_semun) atptr); break; }