From patchwork Mon Mar 14 22:46:55 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 102578 Delivered-To: patch@linaro.org Received: by 10.112.199.169 with SMTP id jl9csp317014lbc; Mon, 14 Mar 2016 15:47:53 -0700 (PDT) X-Received: by 10.98.15.23 with SMTP id x23mr33986554pfi.60.1457995673307; Mon, 14 Mar 2016 15:47:53 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i62si26885329pfi.222.2016.03.14.15.47.53; Mon, 14 Mar 2016 15:47:53 -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 S1753912AbcCNWrv (ORCPT + 31 others); Mon, 14 Mar 2016 18:47:51 -0400 Received: from mout.kundenserver.de ([217.72.192.73]:57568 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752005AbcCNWrs (ORCPT ); Mon, 14 Mar 2016 18:47:48 -0400 Received: from wuerfel.lan. ([78.42.132.4]) by mrelayeu.kundenserver.de (mreue103) with ESMTPA (Nemesis) id 0M4TFs-1ZuTnB0QtY-00yiox; Mon, 14 Mar 2016 23:47:13 +0100 From: Arnd Bergmann To: Jassi Brar Cc: Arnd Bergmann , Heiko Stuebner , Caesar Wang , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org Subject: [PATCH] mailbox: rockchip: avoid 64-bit division Date: Mon, 14 Mar 2016 23:46:55 +0100 Message-Id: <1457995629-1480353-1-git-send-email-arnd@arndb.de> X-Mailer: git-send-email 2.7.0 X-Provags-ID: V03:K0:HdsW1n55kkyR/8wwo8QmNFQ1oYuW8/tfR/pYvtihvsqkBtjJ00Z y0s7QvUvLaCNP3cWAsbxiAlvDXFqxWXY+Ysdr7LJ3M4kuWbWPdjXTRVIUVk57r4/Nt0onuH cVijjWAoBVXvcsOPDxmT1RuCON26TKBSoyba211purJ2aBfzuRL80CUQ8wdNGhPkkFTTVl7 6JIQjJ34tU6Vn7jLrEcUQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:x+4H+a8KFUE=:PhXaw6ZqPAetbuY3De3wql Cuckm1fqZlj2Z+OGirKVBNMbOAea8HAhXzY9dgYv7f0BGYHx/8KlEtBrETV7mnvrNuEKCszld tfSH7tGWwWb+EvBeuYtM7uCwRA8bbBBSFKgKy4RCXepbcT02MoaVj/yAyD55MiM7ki/6IoDTu Ar7i8lr0CjQ0jOb8UGI5oyAXbNP/Vkks1P2BspU4RAVrPRRhl8tiwzVAtdQFuzKnTzAagLfBN 4CWQBmWO1U2qDSkWX41/Un7lhBn0AydUIEUtW3YBkjipeQrDHGEWH9u26bffYk1DWlwp02o+h Gy+wCfn0v4vcKqmd3a/HDYjQFHIenUXONg/XebR+O8GOavbmWilLdDGbRhjEvanpz7+Qtn9RM TCYvnzFZXwxcDD12zepX99inQBZ03ACFu4WMvty4+ugWcOqJCOS3g/VynSYKXjq0Cflct1y0n kZ5ru3yDkB0moaKSdcsvEW25cIU5+lN/yfjVYCKvobfHYaEm/4y9l2GVm1yuuhJa8mUv9pikR cPIA7QX7HpOZauphQBdVI+vPXknHXMhe0o6ItkFfQ4hxnBYELjcVwApYp3e6wTUb2EYKQ9Ck5 659j8dLnO1bPPvFkkLCpfoYXvt7wSBaHgBui4SGMJSf8hCwzRXtvarrvd7rehPj690cRyVhtI 2M31q1bN34S6pHb6XrQetkPeeBq6ASg/q9KVDq1e6uiZG2IG//D2Dq6Z0pgW7dk5xwtY= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The newly added rockchip mailbox driver causes a bug in the ARM allyesconfig build because of a division of a resource_size_t variable that may be 64 bit wide: drivers/mailbox/built-in.o: In function `rockchip_mbox_probe': :(.text+0x6614): undefined reference to `__aeabi_uldivmod' This adds a cast to size_t, which turns it into a 32-bit division in this case. This is safe because we know that we cannot possibly map a resource that is longer than what a pointer contains, and in practice it will be very short instead. Signed-off-by: Arnd Bergmann --- drivers/mailbox/rockchip-mailbox.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.0 diff --git a/drivers/mailbox/rockchip-mailbox.c b/drivers/mailbox/rockchip-mailbox.c index b79a2871227c..d702a204f5c1 100644 --- a/drivers/mailbox/rockchip-mailbox.c +++ b/drivers/mailbox/rockchip-mailbox.c @@ -213,7 +213,7 @@ static int rockchip_mbox_probe(struct platform_device *pdev) return PTR_ERR(mb->mbox_base); /* Each channel has two buffers for A2B and B2A */ - mb->buf_size = resource_size(res) / (drv_data->num_chans * 2); + mb->buf_size = (size_t)resource_size(res) / (drv_data->num_chans * 2); mb->pclk = devm_clk_get(&pdev->dev, "pclk_mailbox"); if (IS_ERR(mb->pclk)) {