From patchwork Tue Sep 5 08:56:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 111640 Delivered-To: patch@linaro.org Received: by 10.140.94.166 with SMTP id g35csp2556853qge; Tue, 5 Sep 2017 01:56:50 -0700 (PDT) X-Google-Smtp-Source: ADKCNb44aH1jVlFtzyrUytnnhAhr5uIBPf875RO68s07aE7v8BMgYg2gvb+3N1Ce7wC6jKZ/2AVw X-Received: by 10.84.128.4 with SMTP id 4mr3505678pla.171.1504601810273; Tue, 05 Sep 2017 01:56:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1504601810; cv=none; d=google.com; s=arc-20160816; b=oxLHWfR64t3iX3xfAYALF6FXgqjFfhPPbJDrI2A93803WnhMpacagaF/0ESmBqF0rm jCWzFVsxlC7NKLS+eH6CqbkGrLgzmWy1M+a91k0znN5c5uKPaMXBMTERfUhsoQsBSfoa K4JSb9Bb2XnvOeijz4tFr8NNETCHOHLsFL0sHyWLVVUtPtLjavpHMV5Ku6RGa4jHbJe+ g5Zmr9tUuIXJEnfphq3CwCPAp4YQCtGIaQhNkrE1s85dzEJgk2zAxq5xIVtbIynUiWd8 K2BDbQE4cLiviHDmL0PsN1UmuVv3lXWmojCzTqoW65B2aGpTvB0Urc4n8pU0A6AQFMLm kZkA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=XtRZErPiYeE/TQA2tXmsqCxUw5SqYckCNkmuA0eyTtw=; b=FLpBrNa55Wic2wZkl7Dc2LMlPAUPnGhcENWJp0Bja+CQdlyztqjWlYD2pg6BR3PmdX pwYOIJDIYD5UdB1DqwBSKZpJ2Xqe6b/YjcaNkLB+EIGP5tRz1GN6aQPqQ9mhjcF5vd40 U1XNPQ7YBQugHeRVPRqqILtpCqglNrIM6ASb7IATSRwpbITxRnIAp9zi/C9M+P8nXtLR UHJOV2Zp0hNCF6U3xqQ+jyShnygjLV8lGDW7aHLGxIMkmlYNoGBO8YKkH4YOT2+yX3OU /mYqjeabLS23SzE4AjW2XzQTiyY+tHx7lkn84a6dx2eXa8JfyxIP9DULau6tZ9H1Pqa4 GgPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id u22si144596pgn.462.2017.09.05.01.56.50; Tue, 05 Sep 2017 01:56:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751829AbdIEI4r (ORCPT + 26 others); Tue, 5 Sep 2017 04:56:47 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:54454 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750966AbdIEI4p (ORCPT ); Tue, 5 Sep 2017 04:56:45 -0400 Received: from wuerfel.lan ([95.208.190.237]) by mrelayeu.kundenserver.de (mreue001 [212.227.15.129]) with ESMTPA (Nemesis) id 0MaiSH-1e4llb211N-00K4ae; Tue, 05 Sep 2017 10:56:42 +0200 From: Arnd Bergmann To: Greg Kroah-Hartman , =?utf-8?q?Arve_Hj?= =?utf-8?b?w7hubmV2w6Vn?= , Riley Andrews Cc: Arnd Bergmann , Todd Kjos , Martijn Coenen , John Stultz , devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH] android: binder: fix type mismatch warning Date: Tue, 5 Sep 2017 10:56:13 +0200 Message-Id: <20170905085640.1566593-1-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 X-Provags-ID: V03:K0:gWo9oDfLyvPpUbcPttdipnc/50WVvye3Zy3+8Q3UEPAklfvxQSY V8bEpfM+oA5ur9DuP4ed0SuGymw/1n3M+y1AqkOGMcnUYuJn/1IchyGmr4hhx6JYns73jdf n7TPJMPy2K9vyXaaaKvN5yGpWVWkyXi/aqhMmZYf2CJhBGE254MUrVivZoxdc7cq72PPrgI f5bb8msPWa+m2iIsT3bnw== X-UI-Out-Filterresults: notjunk:1; V01:K0:cRw9Bq9r/gE=:WWxLLhlLQs55JQG1IWqlu2 VXjDdg20rl1O28cMtLlgAmA7sXhDD4Xyd+bkKfqrC/j171pb7N9wvk0iQ32kfm4mZNxpVuEdv O469s9L7OEjcmHeFZlCxNBsdPhZFbvrUFDK79+u26afpJm5/pPYhXz+D+kDfMel7xstkmgu44 cPzqwCrs/iimdwtQxn5mSE7GGtNomCXb9fButf6luc8nyLdeKhP1R4dNrDvt71hw1ZJuYQqhd yfrnvxgOX8hIrKDvumTA/K7KwN+3RIaV+i+yanGxm26iETZMkO9uLjwLYiWX5zW0/zSrX0y/G uayzSvofG12x8pyEe82eSbVv+Gsoq89oEHb7AMu3a3rI0G3dUJrAu3qs7nfB2ovRwLZVbaP2B LcgSbpt6pyqF7BN2ilvA+2YPaT3W5TjQmYzEbpWpCt4ebYvXrrj5rcR6NoITrSEuK6Ss5YMFK h1Vxss7WdM5nf3B1VdcGPrRO450unHFn7JYhpvavbhvPpbd3BzC2baUAHLG3MBnBeJK4Amp4O sFklr3xiSl2K7BvvH1NbTXun0pD+n8+Z6IhtiRtEwv4z2Wlb4cLISHGDQ65Nsg6KVuaLhgfij tGMULDe353T9WcHWpl7M7ZA7iDv2n0w1baehIA84xKpevrj4qbWSoav+S448dD6FLwtZoCXTb wcGkZb763wAdzACGIPk7N/k7Zf+W0C2OtlIh2ckLBxFEz6K7skf8Q0JrbwbqZZgxnSRCvWxQP 9C3NuIgqxfxetwXjCfXY7QiPTy5Xf4li7BHskg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Allowing binder to expose the 64-bit API on 32-bit kernels caused a build warning: drivers/android/binder.c: In function 'binder_transaction_buffer_release': drivers/android/binder.c:2220:15: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] fd_array = (u32 *)(parent_buffer + fda->parent_offset); ^ drivers/android/binder.c: In function 'binder_translate_fd_array': drivers/android/binder.c:2445:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] fd_array = (u32 *)(parent_buffer + fda->parent_offset); ^ drivers/android/binder.c: In function 'binder_fixup_parent': drivers/android/binder.c:2511:18: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] This adds extra type casts to avoid the warning. However, there is another problem with the Kconfig option: turning it on or off creates two incompatible ABI versions, a kernel that has this enabled cannot run user space that was built without it or vice versa. A better solution might be to leave the option hidden until the binder code is fixed to deal with both ABI versions. Fixes: e8d2ed7db7c3 ("Revert "staging: Fix build issues with new binder API"") Signed-off-by: Arnd Bergmann --- drivers/android/binder.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -- 2.9.0 diff --git a/drivers/android/binder.c b/drivers/android/binder.c index d055b3f2a207..72af95c9ea22 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -2217,7 +2217,7 @@ static void binder_transaction_buffer_release(struct binder_proc *proc, debug_id, (u64)fda->num_fds); continue; } - fd_array = (u32 *)(parent_buffer + fda->parent_offset); + fd_array = (u32 *)(parent_buffer + (uintptr_t)fda->parent_offset); for (fd_index = 0; fd_index < fda->num_fds; fd_index++) task_close_fd(proc, fd_array[fd_index]); } break; @@ -2442,7 +2442,7 @@ static int binder_translate_fd_array(struct binder_fd_array_object *fda, */ parent_buffer = parent->buffer - binder_alloc_get_user_buffer_offset(&target_proc->alloc); - fd_array = (u32 *)(parent_buffer + fda->parent_offset); + fd_array = (u32 *)(parent_buffer + (uintptr_t)fda->parent_offset); if (!IS_ALIGNED((unsigned long)fd_array, sizeof(u32))) { binder_user_error("%d:%d parent offset not aligned correctly.\n", proc->pid, thread->pid); @@ -2508,7 +2508,7 @@ static int binder_fixup_parent(struct binder_transaction *t, proc->pid, thread->pid); return -EINVAL; } - parent_buffer = (u8 *)(parent->buffer - + parent_buffer = (u8 *)((uintptr_t)parent->buffer - binder_alloc_get_user_buffer_offset( &target_proc->alloc)); *(binder_uintptr_t *)(parent_buffer + bp->parent_offset) = bp->buffer;