From patchwork Fri May 5 19:46:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 98668 Delivered-To: patch@linaro.org Received: by 10.140.96.100 with SMTP id j91csp292701qge; Fri, 5 May 2017 12:48:21 -0700 (PDT) X-Received: by 10.84.225.130 with SMTP id u2mr31875767plj.91.1494013701317; Fri, 05 May 2017 12:48:21 -0700 (PDT) Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 144si6012850pfa.118.2017.05.05.12.48.21; Fri, 05 May 2017 12:48:21 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of stable-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 stable-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=stable-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755519AbdEETsU (ORCPT + 6 others); Fri, 5 May 2017 15:48:20 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:63858 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755468AbdEETsQ (ORCPT ); Fri, 5 May 2017 15:48:16 -0400 Received: from wuerfel.lan ([78.42.17.5]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0Ltibd-1e5K6V11ev-011A1Q; Fri, 05 May 2017 21:48:14 +0200 From: Arnd Bergmann To: Ben Hutchings Cc: stable@vger.kernel.org, Arnd Bergmann Subject: [PATCH 3.16-stable 31/87] i2o: hide unsafe ioctl on 64-bit Date: Fri, 5 May 2017 21:46:49 +0200 Message-Id: <20170505194745.3627137-32-arnd@arndb.de> X-Mailer: git-send-email 2.9.0 In-Reply-To: <20170505194745.3627137-1-arnd@arndb.de> References: <20170505194745.3627137-1-arnd@arndb.de> X-Provags-ID: V03:K0:7+/nzQDXeL+Cew5WEfGT1W44ZJ81EjJKzaXETW2nPZmLPf+v1Kn YVZSQPtfj5+dTj5aicoPHPGckEYJ6SQlxYeQme4WNRtp17Pc3VqAOhBtPIND+jNnT9QJFRz EDjZWXdjVHOdYD7Nmp/O14RYghKGe604VI2oF/GqXlJtf0Cy5Mr0FlRWieu0RTzGPsMABfr jBxVeBZ6zvvI/m9GXr4eQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:V92gxxYaAVA=:imL1q5DxexwnWanP+Gav/G WgQh41j8pYF1JlD1YDmD6R2JyEYnjSQmXF7FBAAK7RPkedUH0ZFk2uEmJ4yNIs0MjbIT96IXN z8CIMuyoBnyltzclYdpHGohJonXYvNa/5CxJtxxxU/RUkdtCGbk65Gdi7YeXfvaIp6t0Z4252 5UUKIhdsgPnYlO2Ts5T6tq9BsMZp9uPQ/NCsQBQXESdssYw57hywHnF5ibuNGxTLqJ3SmmnsC G7jLsx/RKIAbWpM3JcpxOZXSif4elUkjb6NuNcw31b6Rxj4QrrqbTo26oH1bHKICArDUiIhKJ aMGhY5gLvQNouz7YS9JpE3X0CVkN4QUCBwxJmD5ZJc98SuY8inOqGmxMq/V8Z0sXluhAzmqdv IOwwdHm3LXH3JCb6NaZqi6uChH4VbRQMmfyU7fHaCF4r4NkvGGGgGqbUXqm2JrqpYkrjzu1WA lWAP219ZJHTPpaq7PGGFRzmJC1SK3SbJqp5/gSvlOXpH+b6zWABYztNiCjEn8PbhqF+9D8JFM modKA0sdwraDfkO46IXZ8bINrBv8BxSdvEELGpaeje+dFAdKERQZacY6EO9BdzLXInppzwA40 TCgyMdODYTeAX6aSjdZWFXgvhy0/vSTX0S3434P/jsOpv63PkTCdU9LxPZiGFhAbhXPweGsZJ J7jnbAHbUuS0jZMYOR7IZz9lUokoqF8sCyyZ+wdak0MjSP4TRlttpTs4ywWrj/jvsycQ= Sender: stable-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: stable@vger.kernel.org We get a warning about a broken pointer conversion on 64-bit architectures: drivers/message/i2o/i2o_config.c: In function 'i2o_cfg_passthru': drivers/message/i2o/i2o_config.c:893:19: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] (p->virt, (void __user *)sg[i].addr_bus, ^ drivers/message/i2o/i2o_config.c:953:10: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] ((void __user *)sg[j].addr_bus, sg_list[j].virt, ^ This has clearly never worked right, so we can add an #ifdef around the code. The driver was moved to staging in linux-4.0 and finally removed in 4.2, so upstream does not have a fix for it. The driver originally got this mostly right, though probably by accident. Fixes: f4c2c15b930b ("[PATCH] Convert i2o to compat_ioctl") Signed-off-by: Arnd Bergmann --- drivers/message/i2o/i2o_config.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- 2.9.0 diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c index 04bd3b6de401..67ceb3010a10 100644 --- a/drivers/message/i2o/i2o_config.c +++ b/drivers/message/i2o/i2o_config.c @@ -772,7 +772,7 @@ static long i2o_cfg_compat_ioctl(struct file *file, unsigned cmd, #endif -#ifdef CONFIG_I2O_EXT_ADAPTEC +#if defined(CONFIG_I2O_EXT_ADAPTEC) && !defined(CONFIG_64BIT) static int i2o_cfg_passthru(unsigned long arg) { struct i2o_cmd_passthru __user *cmd = @@ -1045,7 +1045,7 @@ static long i2o_cfg_ioctl(struct file *fp, unsigned int cmd, unsigned long arg) ret = i2o_cfg_evt_get(arg, fp); break; -#ifdef CONFIG_I2O_EXT_ADAPTEC +#if defined(CONFIG_I2O_EXT_ADAPTEC) && !defined(CONFIG_64BIT) case I2OPASSTHRU: ret = i2o_cfg_passthru(arg); break;