From patchwork Tue Apr 16 20:19:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162355 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4654796jan; Tue, 16 Apr 2019 13:21:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqw6p5eSqHSAp2nNXEXfZ+IxQixUc5r17W0o4PjJgsdgQydH3FnYzzKGh84XrT/iJaU/NPMf X-Received: by 2002:a65:6148:: with SMTP id o8mr79668481pgv.153.1555446064326; Tue, 16 Apr 2019 13:21:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446064; cv=none; d=google.com; s=arc-20160816; b=VgMqFReU3NxuSrIqe+qr6AA9w0DdfA+1lAb4X9J4cZbYU3cQ0FQ/hs9pKIUUuQPVNw xDMAqHwknDAWIBztPtnCd1BsbIQWKHq6ySm09F9alpt/oT6yC5IlreTfBlDhUEQyNu7R 8xMaiUJ/iYl63kMcfE03GT8WJ+0Sp42CCM9hdYr8CvzRDQAbuz2ib4Y6aU55/JGNZ6Hq aP249GaUcKVYCuXLKMJDBkP8QBDMLFfjwuPpN/WAiIAzjXNPEFhC++3GaPVid1AiU6Wb H758pk50wlM5nntj7mNRWAUK18VFrBhn3LhQWiKptmLTCmsmg2s6Zz+p3cWR1JALLQFs cx6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NEXLZuCL1ZWXEM+5ylFV3oU4GqqswM+EWvvOGKkZ1co=; b=1CfY2eAh0s2u+rUK4Xhx7bTFg13v6AD8WMqNdbQb/eaWeW1Q9ZwlRTyviWaz1WfMp4 3eaz7Kn9oDhewvKOElY+laswKUQvO776u5ceudFNBlNiBEmPlEyEECrIThu1fiJhLsn1 wA/DO+Hu+B0BD/uXwsx4C4RUBK9/GN96YB0PV/3T8/Hy3lgVQo/9c5i0HoWcGPWSoNC+ QgZjq0w73/aova+MxMxfOrs2BVXy26FTPUkPQVSxfVYCez9VN6jcEbJx7yBcmRrXiEhu yBjCNKXInb0CvbRuZTQ6OO18+Uy8eU7BfvC6dS0JAaiDuGOtURFI0r23rpzPHcbu5PVr GBlQ== 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 g2si47881190pgc.225.2019.04.16.13.21.04; Tue, 16 Apr 2019 13:21:04 -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 S1730353AbfDPUVC (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:02 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:56043 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728401AbfDPUVC (ORCPT ); Tue, 16 Apr 2019 16:21:02 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mth79-1gzvE91hD5-00vAld; Tue, 16 Apr 2019 22:20:54 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Guillaume Nault , Michal Ostrowski , "David S. Miller" , netdev@vger.kernel.org Subject: [PATCH v3 01/26] compat_ioctl: pppoe: fix PPPOEIOCSFWD handling Date: Tue, 16 Apr 2019 22:19:39 +0200 Message-Id: <20190416202013.4034148-2-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:UuSKur4F/zpzv8/eUkggQkLgvKUCGCMbUy0fxaAopYsiULgmb0c qlnZoZgjR/ezQ7Spy4ZN8C/7bmXf60fsXDeVZXie5xCW8GkPOWC/swEQrEZhQ2BrZID3LFg YAF/jJFfN2ZZ1wopD1LVQM/5A1sh3o/vpRajLiVX/PDCoPQrSoWG9IATr48/4XihimF5Evw TyxDLdga7kpS0I99zc5mQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:Z9NglIFDkPA=:C3G4KtI7zzz1v9AiqvsBsd rBE7SmHIb/6xeCTExVcPaMzzciCrpm1AI36SmWGqbC8Gh+w/nKAutdEiO/E91OKGOwxUMDegT wkm+G4Wc01TaCtLl30UL7kVeKRyU8ysqCJT5bgU23IbvPhb1SogpS6cbHYR8qavgy04u7xNW5 RsexMsxEnlpAmtmgLAF90x1rGFG5Vgl0r6sKv8YxatBfc9gdHsLsQVhUqkQOiToi8qKYyhEKQ 9PvjE70D0P7jinET35uWvXRFf2IsVC/w49QDmWTzTc7FtkfRESOkZwmhrFKzzijFRiEh7grmo PYY26WUIJY2jtUtatjxS0biEVoNkK7iNtC/pzV3xzkqdslFGY52aie1+S3Y2nIPZeCTVKNP7a vgIet4flLDINyW2zmi2SCC4YE/bAhMpqhjzk/WMG1UoPY9S84ghupHhFnQZWcB66xw/LiWurA AkBFFOZwxXIUG9LJadtBJJeT2pE3hBu3WNMtj9bzLDmGgjp6QIYqwKOFFJaze383zD3o31Iqx G1gBbCXTUZBojIQGw0NnzYe39vkipQazZGN2nV25M5w90Ln5LzX8nYhYIgkzyGBmlHytX9cjg 4l7ENTgcxR6WCX+8zbs02SEwq1fc4zaAVPowCi8aEp2qKLTvJK6F+WAvmbbOFBSdLUNPXYJAT JZIqZV9MbxahUpMwwAToGJsfV3rxS1ccw4wb6VA0PYUwz9YXP5H/v7JWD7O8Hbqk0rwu0vsvZ wOzHEpbMzF0ZUYEiKptTk3cUA9AK8x1sg27xMg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Support for handling the PPPOEIOCSFWD ioctl in compat mode was added in linux-2.5.69 along with hundreds of other commands, but was always broken sincen only the structure is compatible, but the command number is not, due to the size being sizeof(size_t), or at first sizeof(sizeof((struct sockaddr_pppox)), which is different on 64-bit architectures. Guillaume Nault adds: And the implementation was broken until 2016 (see 29e73269aa4d ("pppoe: fix reference counting in PPPoE proxy")), and nobody ever noticed. I should probably have removed this ioctl entirely instead of fixing it. Clearly, it has never been used. Fix it by defining a separate command code that matches the 32-bit version, and marking that one as compatible. As long as we keep the native ioctl, it seems best to also have the compat version working. This should apply to all stable kernels. Acked-by: Guillaume Nault Signed-off-by: Arnd Bergmann --- drivers/net/ppp/pppoe.c | 4 ++++ fs/compat_ioctl.c | 2 +- include/linux/if_pppox.h | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) -- 2.20.0 diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index f22639f0116a..c5e7435db86c 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -57,6 +57,7 @@ * */ +#include #include #include #include @@ -784,6 +785,9 @@ static int pppoe_ioctl(struct socket *sock, unsigned int cmd, err = 0; break; +#ifdef CONFIG_COMPAT + case PPPOEIOCSFWD32: +#endif case PPPOEIOCSFWD: { struct pppox_sock *relay_po; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 6e30949d9f77..f1065d116b55 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -639,7 +639,7 @@ COMPATIBLE_IOCTL(PPPIOCATTCHAN) COMPATIBLE_IOCTL(PPPIOCGCHAN) COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS) /* PPPOX */ -COMPATIBLE_IOCTL(PPPOEIOCSFWD) +COMPATIBLE_IOCTL(PPPOEIOCSFWD32) COMPATIBLE_IOCTL(PPPOEIOCDFWD) /* Big A */ /* sparc only */ diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h index ba7a9b0c7c57..d221f1465f41 100644 --- a/include/linux/if_pppox.h +++ b/include/linux/if_pppox.h @@ -85,6 +85,8 @@ extern void unregister_pppox_proto(int proto_num); extern void pppox_unbind_sock(struct sock *sk);/* delete ppp-channel binding */ extern int pppox_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg); +#define PPPOEIOCSFWD32 _IOW(0xB1 ,0, compat_size_t) + /* PPPoX socket states */ enum { PPPOX_NONE = 0, /* initial state */ From patchwork Tue Apr 16 20:19:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162357 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4655034jan; Tue, 16 Apr 2019 13:21:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqzXfTvVVrySvVXzw0/909unOXN0bocY0rrdUgzgqDJkikkE6kMkRLs7GAczTbWjCLUj4mjA X-Received: by 2002:a17:902:822:: with SMTP id 31mr58857784plk.41.1555446079663; Tue, 16 Apr 2019 13:21:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446079; cv=none; d=google.com; s=arc-20160816; b=r6J8lKb791jAqm9tB8fcmDewy0A5P65YcoYVcZTYPvg8zZRK1Hy805aV25G/C5vrA0 sLt1jD8UVdbKze+MPqcga+D8/CZq3EO7hUaY2QA2cMvp80O+WoCE6zN9bUJWMw/VNMQY 6ZIFu/G8l8fCVG3me4CFgYLUKZSUxmmx7UytCI+ONQ8b5lAPUMnU8xkRcA5PgvFI/A21 qjrXzVr6cEoGZqesPrGVWOnIKv21FyY7etuO1pcgmlm9LAYgEjzc6r/Z/qi0FhFueVYS Sch9g/ETw9yV3wixOnzxAVNaGEFrVRqzVFPEnchbYEqIwH3SYmFj3U2siDFvH6l41ZV8 0rlA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=aUGhxR7x5Dedhy7NLFNBSCfpXJJA2mtJo03/j7Bu1dw=; b=Bi9TYFaPoXL1Hf9DbbKy4Lw04IY138LpfuUSOkXnOsP5gY5QAvUbChI2mnRofhmax2 5og+9V5iAFCvonpGyuBJbjSkYsYbVHx0ZgVSUGZjdK9RiJyGZ3etS0Q89lz6B20PMPBp FiLX9Hc7b4cnczYU7cmhiMhmKgOShHHUa7pGQD/AiqmyTHSa4P5mMOcWyd12j3RSMAmu qYPb9G2ZcBqIOuaUr1WcEFRJDzMPXVEA75fbxJ4VcDrPK+rnPWA+2PLN8s5R/pZnYXDm Y6mZhzUxd6HtvLymQxRWsKtlzfhqXuqfKK+NUfYqP5w/FFVkBK7SZt1rkTlt0mfF12rg gsyA== 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 x5si51272277pfn.30.2019.04.16.13.21.19; Tue, 16 Apr 2019 13:21:19 -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 S1730477AbfDPUVS (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:18 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:38477 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728401AbfDPUVQ (ORCPT ); Tue, 16 Apr 2019 16:21:16 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MFb38-1h3mzF1hVO-00H4ps; Tue, 16 Apr 2019 22:21:07 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Paul Mackerras , "David S. Miller" , Michal Ostrowski , Dmitry Kozlov , James Chapman , linux-ppp@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 02/26] compat_ioctl: move simple ppp command handling into driver Date: Tue, 16 Apr 2019 22:19:40 +0200 Message-Id: <20190416202013.4034148-3-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:2fuxPgIpkT60wpcwd8vWkYQoEzRnLS+l+u/gvxP5a57UHbNKtRB PINKjQSJjzsV9l4YjzpSjoixCADvoX8w/PJwRpataHQYSxkn/wEvWk5z+T8h/DcLxdeD2eY WcOU6KlsbInhFOCldo1hGPIoQnyS2kozkrPG6jC4AhckFU98lFabhILsN5oSkuWBxC6YJam Jz9kPo/2bXPazvnziaAgA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:E5NP0+fAc88=:NKPiGTaWpBradyXsYKX1UU 5qSZQVpX0Ah3aRyyc+n+6ewTFkvSOddRARrhJLLsr0KOUQaCPBA7pFcTSIbX5QJ36gcn5ObEn 0h4hj+8a+Y4+o8C/i+iIQ35oeOgEKwpWUAIWugwi9EjEI2wUmuznEGWQpCXNv/VCPxMZNWRpP KSzdkQRIS3kRxLTAkXC6/PVlk54edPQ5S5LBQZVLzb2vpgSh6dV53/izR9sNNJ7gsSF3Bd6TA V91SZ69kiBvsHH0QUFdGuh/H97iwhto9fYWffjxbkkYlswwJrTMdJgaC3exMgY1cbBTWAWEqz 6n6pXGPBtt+oTO9ELZF0C/6dzqk5fRzQKTQT18WWkE6iWJcMipFhGB/bBA0lNxksINpk7AhUl sRkbJASBJijZWEG4+xzY9GEgvlQsHVq4qUAJ2MNgRohKqANgIcI4AirRgXGTeSRgH8RfPsbO7 FOgR6SmEEVALhHri734cLgRqro5YFskfuIRHP/CmxYMumWe9L8axW9lzew8ImtvhlZJZXcPlF mPTWPFXqVsz0yYPry5W/KU/jWg/vl7IVka3Px0qHxV+gxr7w1vYoK5jYvfNhwyyoy+DJEK2Rc nSaKFJtxkeCvqujQ9bMuHHxGYp16VVF9ydiXzt2ow+K1eTdbGVLMCcE+eckiNiKlFJqEN6dI8 fHCuFy4yKkORz0Qc8xj2eyeMYMpmuFdZHYVubtRvwqiiYbDQ5fk6eO4/cPmlR80IDinZigoRf w1GesTG31RkroqcaNp+MWiJs+HAIA/q53KplNw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org There are multiple implementations of the PPP ioctl interface in the kernel: - drivers/net/ppp/ppp_generic.c implements a generic interface for the /dev/ppp chardev used by some subdrivers. - drivers/net/ppp/pppox.c implements a socket based interface for pppoe, pptp and l2tp. - drivers/isdn/i4l/isdn_ppp.c is for the i4l ISDN stack All ioctl commands in the respective functions are compatible between 32-bit and 64-bit kernels, so we can simply mark the handlers themselves as compatible and stop listing the commands individually. Four commands (PPPIOCSCOMPRESS, PPPIOCSPASS, PPPIOCSACTIVE, and PPPIOCGIDLE) are incompatible on the user level but have a translation handler to make them compatible. I'm simplifying that compat handling in separate patches. The PPPIOCGUNIT and PPPIOCGCHAN ioctl commands are special, they are implemented on various other file descriptors, so we have to keep them listed as COMPATIBLE_IOCTL(). For the isdn_ppp code, additional ioctl commands are needed that have never had working compat handling, so I'm leaving that part out: If they are remaining users of i4l's ippp, they are not using compat mode today, and are highly unlikely in the future before the last ISDN network gets shut down. I4L has been deprecated since 2002. Signed-off-by: Arnd Bergmann --- drivers/net/ppp/ppp_generic.c | 1 + drivers/net/ppp/pppoe.c | 3 +++ drivers/net/ppp/pptp.c | 3 +++ fs/compat_ioctl.c | 31 ------------------------------- net/l2tp/l2tp_ppp.c | 3 +++ 5 files changed, 10 insertions(+), 31 deletions(-) -- 2.20.0 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index c708400fff4a..04252c3492ee 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -899,6 +899,7 @@ static const struct file_operations ppp_device_fops = { .write = ppp_write, .poll = ppp_poll, .unlocked_ioctl = ppp_ioctl, + .compat_ioctl = ppp_ioctl, .open = ppp_open, .release = ppp_release, .llseek = noop_llseek, diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index c5e7435db86c..5eccb49bcd2e 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -1124,6 +1124,9 @@ static const struct proto_ops pppoe_ops = { .recvmsg = pppoe_recvmsg, .mmap = sock_no_mmap, .ioctl = pppox_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = pppox_ioctl, +#endif }; static const struct pppox_proto pppoe_proto = { diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c index 50c60550f295..7cf56ad50d07 100644 --- a/drivers/net/ppp/pptp.c +++ b/drivers/net/ppp/pptp.c @@ -628,6 +628,9 @@ static const struct proto_ops pptp_ops = { .recvmsg = sock_no_recvmsg, .mmap = sock_no_mmap, .ioctl = pppox_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = pppox_ioctl, +#endif }; static const struct pppox_proto pppox_pptp_proto = { diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index f1065d116b55..54f26a9fa9f2 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -608,39 +608,8 @@ COMPATIBLE_IOCTL(SG_SET_KEEP_ORPHAN) COMPATIBLE_IOCTL(SG_GET_KEEP_ORPHAN) #endif /* PPP stuff */ -COMPATIBLE_IOCTL(PPPIOCGFLAGS) -COMPATIBLE_IOCTL(PPPIOCSFLAGS) -COMPATIBLE_IOCTL(PPPIOCGASYNCMAP) -COMPATIBLE_IOCTL(PPPIOCSASYNCMAP) COMPATIBLE_IOCTL(PPPIOCGUNIT) -COMPATIBLE_IOCTL(PPPIOCGRASYNCMAP) -COMPATIBLE_IOCTL(PPPIOCSRASYNCMAP) -COMPATIBLE_IOCTL(PPPIOCGMRU) -COMPATIBLE_IOCTL(PPPIOCSMRU) -COMPATIBLE_IOCTL(PPPIOCSMAXCID) -COMPATIBLE_IOCTL(PPPIOCGXASYNCMAP) -COMPATIBLE_IOCTL(PPPIOCSXASYNCMAP) -COMPATIBLE_IOCTL(PPPIOCXFERUNIT) -/* PPPIOCSCOMPRESS is translated */ -COMPATIBLE_IOCTL(PPPIOCGNPMODE) -COMPATIBLE_IOCTL(PPPIOCSNPMODE) -COMPATIBLE_IOCTL(PPPIOCGDEBUG) -COMPATIBLE_IOCTL(PPPIOCSDEBUG) -/* PPPIOCSPASS is translated */ -/* PPPIOCSACTIVE is translated */ -/* PPPIOCGIDLE is translated */ -COMPATIBLE_IOCTL(PPPIOCNEWUNIT) -COMPATIBLE_IOCTL(PPPIOCATTACH) -COMPATIBLE_IOCTL(PPPIOCDETACH) -COMPATIBLE_IOCTL(PPPIOCSMRRU) -COMPATIBLE_IOCTL(PPPIOCCONNECT) -COMPATIBLE_IOCTL(PPPIOCDISCONN) -COMPATIBLE_IOCTL(PPPIOCATTCHAN) COMPATIBLE_IOCTL(PPPIOCGCHAN) -COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS) -/* PPPOX */ -COMPATIBLE_IOCTL(PPPOEIOCSFWD32) -COMPATIBLE_IOCTL(PPPOEIOCDFWD) /* Big A */ /* sparc only */ /* Big Q for sound/OSS */ diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c index 04d9946dcdba..8ef66513fbe0 100644 --- a/net/l2tp/l2tp_ppp.c +++ b/net/l2tp/l2tp_ppp.c @@ -1686,6 +1686,9 @@ static const struct proto_ops pppol2tp_ops = { .recvmsg = pppol2tp_recvmsg, .mmap = sock_no_mmap, .ioctl = pppox_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = pppox_ioctl, +#endif }; static const struct pppox_proto pppol2tp_proto = { From patchwork Tue Apr 16 20:19:41 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162356 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4654994jan; Tue, 16 Apr 2019 13:21:17 -0700 (PDT) X-Google-Smtp-Source: APXvYqwHGvC9bIZgib+8lnZ83MSepwM3L4VneFbIPn9hvQLpo9BD+0X7GiRl8xnEEh8NPCrVwIYY X-Received: by 2002:a65:47c6:: with SMTP id f6mr78213910pgs.173.1555446077289; Tue, 16 Apr 2019 13:21:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446077; cv=none; d=google.com; s=arc-20160816; b=not+9OcgWuAusdE2KAgVkIqUnKQiybtY9oNe/uT4e2Dr/4entm/k+pWjz0SO2+xlcZ uj74jU+wnyD2B/XjuuMxYXXPp2tdL+J/Gtmgj8FTDwAifDmljl+u26i/VT5FZbknmCAe 4c8saYaxX9JbKPQDtG28tAE19KKsWSd2eT79JP/30Qthf8Hv5k8Jzg7qRnqsaqr2aQ8Z N6EAefunb+BJnJx//3KqTmcXSu6zo62QyTn16dRm1TxrjUhJ9ttUiZZ8UkR2aZ2Tc1Xi bchJaibmPJrCsfndQVncp8Wyy8qK04ZO5Sv8iFrYlftBtSYb2wT+mYSfJ24k0MkEwOR+ XFfA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ah3NIbf18Ou8RCtDLTRjOsqQvSzfEoTMcEdmF5UWIJc=; b=Pa5rWz5MDRM9vQ5WuWFQA3Ur8MSqT7HBVwvsXuRlzAWIH01ALYdzk6xSQF4RI0WQAs hYgs/jJy5PsnymCa7hYKjY3KvJI2PAPEWmfYm/JHCydVZzekbGB3KwAdjmF9gjOKjSI5 nFh2R0XO3qzacTinpf+KDf4zZKz4M8eI89zGDddF882WxT5VUiV3u8g31JmwXy1a2QBD qfg/M+ShE8UzktuVUkXZ0i/k4AW8toeY+3TIZqj9uVlC14GcKTKsZLWUfUT3xnbzFQgx a2WR6ZsC/yapMkz7prJPR8zcA1F2/HPu82OX9NhtFZ5+OhYAoZxnZCW9F5EcqfZfglZI 0Nxg== 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 x5si51272277pfn.30.2019.04.16.13.21.16; Tue, 16 Apr 2019 13:21:17 -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 S1730426AbfDPUVP (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:15 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:50809 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728373AbfDPUVP (ORCPT ); Tue, 16 Apr 2019 16:21:15 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MdNwm-1ghQsK48lU-00ZNI6; Tue, 16 Apr 2019 22:21:13 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 03/26] compat_ioctl: avoid unused function warning for do_ioctl Date: Tue, 16 Apr 2019 22:19:41 +0200 Message-Id: <20190416202013.4034148-4-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:L+82VjtPNvJ/9cddonfdgesyM2cGZaLGxjHkIqcfsx+rOv8O6Ly /DyHOZgU2AA7jki8pndUtENOpJ2bpEu0hmyEGK8DR+IN1Qoh0MeppXgfugDyXCFVdFVc0Jh A/OCMaFzrorxhDQtf+HHhRmRQ721VcX4hj+3txfKGC95ge5u7KSuXQg+vzq/B1Bw0CK3HIC deP8RTtFmaZv8/f4+p21Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:ivXdclr+H2A=:bDNmQTqWjYLHmBCcjNyLe/ gbRn8XJELMvytWkqJiOwVGX9KpRPTB1avv9/pvci0OzdpdUhyGboNqSlNKIlq/9eG5yARrFOP FQ7dTJrTW7nKWlDZCqN5FoWV0/TWx5gFz3SRn0Ah6a8YqW+k+qWIafukqEeaTxhPexTk8ttC/ ec1jHkveXLW6wEepuEhhhfi2DXmwv3cbBzVoLV0VoFg7MlJJYypDtW1YHUBwIe9XIJoc+XPNF eFieSzGXILUjkkX6fgVoQM15lXCsdpnpKfPiSAWQ+hsl4F3LgH7RP+hebr70WMamfOiAXBl7w jcUYwF+dqkHFWYbW1hJg8NreJ+Rp/yUNl+fqeJBKM6ieH+HpTyGwSUbN8+DzCPwD3EXanGGhK tkkkz5tA7+ltQNAUPnX3r338LWGJYwQyswK35lv9xPPqPBykXbMN++nX9xd/CT3wTFnTEo/7O 0GcKVQwiYlRaR09StA8SjBtBY/tWTaGgoKXbbarfWaTMC3BqxhcErr4DYgh6UrvfxD8pyBxBz R3ym+6DC8QKvVv6H1XpTbh5VqOBEzyzXPuvDhZ0u0McqkHlNKANpdVJx6u27CyiVjpBp0nMhI R1d6H/8MN5WVXfr75np4SQTDhbqF+7R1KPFG0qKYB2a3epLf3KvM/ypY/NEsY5om3d+yjUjvs X3U0K/Ozo4vgTUhe/vcpy986AJRBCV6C1wgmcnjdzgDevYMUzYP1kvEZ7jBcqrJZf1OimopmE PXLSZdLkyOm/u2zzc2nFj6VNyGvTsoVlM4ijlw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The users are becoming rarer, and when the remaining ones are all turned off, gcc warns about an unused function. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 54f26a9fa9f2..2772b539674d 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -79,7 +79,7 @@ get_user(val, srcptr) || put_user(val, dstptr); \ }) -static int do_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +static inline int do_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int err; From patchwork Tue Apr 16 20:19:42 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162359 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4655333jan; Tue, 16 Apr 2019 13:21:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqzffJam5/E2kvXJrsiQHNvsRKfe3BFQinALQmOG1M+27aNL7f70rIT/XVZ6UIMaVxdXn0DF X-Received: by 2002:a63:2c09:: with SMTP id s9mr74903988pgs.411.1555446097084; Tue, 16 Apr 2019 13:21:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446097; cv=none; d=google.com; s=arc-20160816; b=SagICnDvS+ZUfwwKEcBJbKp8ZIxjektkB4I6VWQxgPzBxFOyzpZwRIA6RjwjgJw96F Tv/zMpjXjRdIKfRYrHWcIhzxvfv+ndDIHnFvIDCFe/+3Vcd0LlSVMzKBbhtH9JnMxx5R z/OWcCEH1mW5xfpAxlJ48bolrPK/IstpP6dCSxHpQxZ/0Z9CBHUgLU32QMC7kYkd7G8c tOAZUzwT8Qhp3OWUMVFDTmuTP20y1jKPSDDLJeV6ORT/zZ0tobi/llWSZmlgtKLw1FJH EuEPydCGOALggHkn5LfCDm9dVcl0Z+eybt6wHnFEBoQ07GYI8sYrIFf2Yaozhv72Xyxx pamw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=mJTK5dpxeBqp/JDJpD3yNxJ+7OTx2DJF+Llw2SRejDo=; b=oetf/cDTmgl4K8UIWgC6CgiNirNLO6dHWEyCxG6n5z6Sjt5KdMoyLXmYBOEyj5NLXN IQcviVTI72SysnourOXytw+kf5dcGWbGyD9bwbURZl/kcvbofsJ55G4HtdbYN2WKtWZQ oDX7CGXgTxeo8eujZD7nm4OXGqhdoGHTepI9F9MgVdXiGBsh7lCRgQGzf3prhPpGBbuP xhCP2ORBdHkHXrKL0IRXBGT9bmPQMXNSCCaPtiMkW4bMy58K2NQksMRh8SBq5gjflBfx iUfDnBNh6p0FjYCEL6hNQIZ9dRf/y0+/EvOx9LWP9Iqh0g+LFqpMkAuVBSDcVkV3MvQC unow== 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 l68si40073629pfb.248.2019.04.16.13.21.36; Tue, 16 Apr 2019 13:21:37 -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 S1730605AbfDPUVf (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:35 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:60259 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730485AbfDPUVW (ORCPT ); Tue, 16 Apr 2019 16:21:22 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MgzWP-1geNvy48Ev-00hMyp; Tue, 16 Apr 2019 22:21:16 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Paul Mackerras , "David S. Miller" , linux-ppp@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 04/26] compat_ioctl: move PPPIOCSCOMPRESS32 to ppp-generic.c Date: Tue, 16 Apr 2019 22:19:42 +0200 Message-Id: <20190416202013.4034148-5-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Ha8u+FdxsfGiECPZi0VB6EEBh7FPOXSVo4HGKcgHUpw76P1rkgS q+Jk3dD9rezGspoBRTCotAkOoOTtWiPm0aKPrkZWLdTvEmCP5sZSZTrYeSduwbKq9XYF9C4 DJ7droj0H+S8vx+99sIHBRwUG0HZtoUGFO0qAEKCkM1x9Pq9QqQBcBWcFvGLcSFPemT21yG cL9cYdegkUewnhm3SqbJQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:2zdWIeLt2a8=:3qgQ0sfrYHvUfumdo+mAyt nyLc0k2V081wdIb/AFjsRl2ey5sqS18kYAOjtyeLuej4WPzBBQ1OFOruQCkY7ISUoaZKaClhi DdO5Mm1mRmJPBknGNADe+GwRAofKJwHlb0CFTtLrty3rQrJZpw1c6aj0L871sf3gTBmbPk4nX wkew35gDniaoTc03TGzlhi13sDMB9sNZydMcB8JsOf56ZPXQfGmORNhwTC3SiTlhR8b3wdYOX ayr3YiULsuB7Ng2oBF1F/ofX3aKHxDtpBGmde2cKWchfVBkbilSSMMXze1vPluhh9IrcDHVRN 3x4poWx+PyFeM28t9OrmRW35yFsatOrbgVxnlbNyAfOJHMKID45jbRmGD5bTS4Ot40TJ7ZIXI arbpxj8EPWO51ekNypxqiZyepwcQysPDrznrfXve3IwWTdtX3ReqNHc6p3GLeBaN1rJD3jGtv YdoW18wbbniWxn/PzL4bzPbUJnSSauMst0Om19+J6Rt2KgT43jlzdfFs1Acn7pA0ansa01Eqo GdgdqCWZh5Px6VlAljojIhcWHxOFesK6rODoS8Q2RzSfrl9tlMEsuVSQsEaKwsejv9U2opCsN LpOk/LpWcbEIJCRNdOjqN/qZdXDU+T/zSmLFmLjTUEylHLF9VFw9OcN4gdh+OrLm744gej5HN ki0LR9xsjDF2FdtFAJYlM7dm/HqwbI1v0esChT6ZTG9Ek5twyHTgDgynqjV+OsFaDyBF6Yu7g ouvTmYy3IK+rLzW9LH+NHLNcj0IVRAb1YnBKWw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PPPIOCSCOMPRESS is only implemented in ppp_generic, so it's best to move the compat handling there. My first approach was to keep it in a new ppp_compat_ioctl() function, but it turned out to be much simpler to do it in the regular ioctl handler, by allowing both structure layouts to be handled directly there. Aside from moving the code to the right place, this also avoids a round-trip through compat_alloc_user_space() allocated memory. Signed-off-by: Arnd Bergmann --- drivers/net/ppp/ppp_generic.c | 40 ++++++++++++++++++++++++++++++----- fs/compat_ioctl.c | 32 ---------------------------- 2 files changed, 35 insertions(+), 37 deletions(-) -- 2.20.0 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 04252c3492ee..8d211c9c2e4e 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -274,7 +274,7 @@ static void ppp_mp_insert(struct ppp *ppp, struct sk_buff *skb); static struct sk_buff *ppp_mp_reconstruct(struct ppp *ppp); static int ppp_mp_explode(struct ppp *ppp, struct sk_buff *skb); #endif /* CONFIG_PPP_MULTILINK */ -static int ppp_set_compress(struct ppp *ppp, unsigned long arg); +static int ppp_set_compress(struct ppp *ppp, unsigned long arg, bool compat); static void ppp_ccp_peek(struct ppp *ppp, struct sk_buff *skb, int inbound); static void ppp_ccp_closed(struct ppp *ppp); static struct compressor *find_compressor(int type); @@ -557,6 +557,15 @@ static __poll_t ppp_poll(struct file *file, poll_table *wait) return mask; } +#ifdef CONFIG_COMPAT +struct ppp_option_data32 { + compat_caddr_t ptr; + u32 length; + compat_int_t transmit; +}; +#define PPPIOCSCOMPRESS32 _IOW('t', 77, struct ppp_option_data32) +#endif + #ifdef CONFIG_PPP_FILTER static int get_filter(void __user *arg, struct sock_filter **p) { @@ -683,8 +692,14 @@ static long ppp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; case PPPIOCSCOMPRESS: - err = ppp_set_compress(ppp, arg); + err = ppp_set_compress(ppp, arg, false); + break; + +#ifdef CONFIG_COMPAT + case PPPIOCSCOMPRESS32: + err = ppp_set_compress(ppp, arg, true); break; +#endif case PPPIOCGUNIT: if (put_user(ppp->file.index, p)) @@ -2739,7 +2754,7 @@ ppp_output_wakeup(struct ppp_channel *chan) /* Process the PPPIOCSCOMPRESS ioctl. */ static int -ppp_set_compress(struct ppp *ppp, unsigned long arg) +ppp_set_compress(struct ppp *ppp, unsigned long arg, bool compat) { int err; struct compressor *cp, *ocomp; @@ -2748,8 +2763,23 @@ ppp_set_compress(struct ppp *ppp, unsigned long arg) unsigned char ccp_option[CCP_MAX_OPTION_LENGTH]; err = -EFAULT; - if (copy_from_user(&data, (void __user *) arg, sizeof(data))) - goto out; +#ifdef CONFIG_COMPAT + if (compat) { + struct ppp_option_data32 data32; + + if (copy_from_user(&data32, (void __user *) arg, + sizeof(data32))) + goto out; + + data.ptr = compat_ptr(data32.ptr); + data.length = data32.length; + data.transmit = data32.transmit; + } else +#endif + { + if (copy_from_user(&data, (void __user *) arg, sizeof(data))) + goto out; + } if (data.length > CCP_MAX_OPTION_LENGTH) goto out; if (copy_from_user(ccp_option, (void __user *) data.ptr, data.length)) diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 2772b539674d..a7cea8f9c771 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -305,13 +305,6 @@ static int ppp_sock_fprog_ioctl_trans(struct file *file, return do_ioctl(file, cmd, (unsigned long) u_fprog64); } -struct ppp_option_data32 { - compat_caddr_t ptr; - u32 length; - compat_int_t transmit; -}; -#define PPPIOCSCOMPRESS32 _IOW('t', 77, struct ppp_option_data32) - struct ppp_idle32 { compat_time_t xmit_idle; compat_time_t recv_idle; @@ -339,29 +332,6 @@ static int ppp_gidle(struct file *file, unsigned int cmd, return err; } -static int ppp_scompress(struct file *file, unsigned int cmd, - struct ppp_option_data32 __user *odata32) -{ - struct ppp_option_data __user *odata; - __u32 data; - void __user *datap; - - odata = compat_alloc_user_space(sizeof(*odata)); - - if (get_user(data, &odata32->ptr)) - return -EFAULT; - - datap = compat_ptr(data); - if (put_user(datap, &odata->ptr)) - return -EFAULT; - - if (copy_in_user(&odata->length, &odata32->length, - sizeof(__u32) + sizeof(int))) - return -EFAULT; - - return do_ioctl(file, PPPIOCSCOMPRESS, (unsigned long) odata); -} - #ifdef CONFIG_BLOCK struct mtget32 { compat_long_t mt_type; @@ -904,8 +874,6 @@ static long do_ioctl_trans(unsigned int cmd, switch (cmd) { case PPPIOCGIDLE32: return ppp_gidle(file, cmd, argp); - case PPPIOCSCOMPRESS32: - return ppp_scompress(file, cmd, argp); case PPPIOCSPASS32: case PPPIOCSACTIVE32: return ppp_sock_fprog_ioctl_trans(file, cmd, argp); From patchwork Tue Apr 16 20:19:43 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162358 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4655179jan; Tue, 16 Apr 2019 13:21:27 -0700 (PDT) X-Google-Smtp-Source: APXvYqxjhIvA3y9QZt8M5hBlMWLjYBfJPQv3xGFGNGicjnzCLimh6fpIMrc/EmTz6wuflIFWAs13 X-Received: by 2002:a17:902:a513:: with SMTP id s19mr81720013plq.97.1555446087032; Tue, 16 Apr 2019 13:21:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446087; cv=none; d=google.com; s=arc-20160816; b=GELkeeFLu4K3AMTut5aBEDTJQ1R0RfFTOG8MdjDTX1TbAxZ7h4I/KG1/etH0iUlVxW Jsm9lyK/g+zJW8lgz88WeHyMukSfVuV2RJ/u5tu39hLWIi4l1kXi8sQ/7TYBh8YA5FSB 91oQjhBWQZKOtMq6Bndg+jP832nkb1Wx28/GmbmJJ5cO3P7o1eXT9Pk2KIFZaJ3pDTsb 3KDXLFWr/XgBtDjYkQXQdDo6Lp3LR2WCnhlTtCj/3TpQVnnGDxSsktXBEY9XYGoUm/P3 n3VTjpVv+mBB+F2QXvX5itngimuz38olDGu6lDmPHxMBDsF7c1JHlGaY/HveBLWPinBr IIKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=u62eskXO1fk1E/vT89TB3qU79KCaJcHSmOsJ6th8NSA=; b=A0ts11vVwXqk1BEYWX520COqWULTkXUUKsvRdvoCTaZCEpSfak8uaeWmj4mWgCUkgk qZmU5rz8scV2sPSlaVT8oOOtNqstClHflos56u9lAG7CRd4XBsOJzUleCXLvVZOAQQYv G/A/1j4bKp90yy00uZwCiQmjMFlD2MnT6qoskkcFxt8UCCv2l0zFiS1QdyB0hfY/z+AO TiwWYf3Y2lPAMyUemw01iAj75I9oaZ0C5LgpZ2i9zwcEJswbHhlnMWAJsT238N7/hV2H rY1ONyzmgXa1nqmrTvCKQVFVQ12nTBojuugDHnOhRlkmlD3x1VoO0RYQie+2VkSvS6F2 HJLg== 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 t7si48297988plo.163.2019.04.16.13.21.26; Tue, 16 Apr 2019 13:21:27 -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 S1730578AbfDPUVZ (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:25 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:44013 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730494AbfDPUVX (ORCPT ); Tue, 16 Apr 2019 16:21:23 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1N4vFE-1gpAeR0OEW-010u3O; Tue, 16 Apr 2019 22:21:19 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Paul Mackerras , "David S. Miller" , linux-ppp@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 05/26] compat_ioctl: move PPPIOCSPASS32/PPPIOCSACTIVE32 to ppp_generic.c Date: Tue, 16 Apr 2019 22:19:43 +0200 Message-Id: <20190416202013.4034148-6-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:YZll/HYd2PBBirD2WAneXHxjnDz0Qclzh9yWR6cwSc0S/ka168l BbIqPfFFCokI8vHo2tkBeJNklutpx4Mtr6ry7peHfgLTJdKAzuPawoX7enBP10k391FSpM4 pibKmK54jo/CXQt9hpK11CqPuSm8rqHNxMouP8fVVw4d9/e7K8SIZ5Gf5xvXHU/WzzcAarp KiE8Foh+eE9mMLSZm6KMQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:1m44palrgtU=:pAXvx4wyYGRZzechT2jopg iokOYRH5R400LVbTezGQNjVZ+d4BnLO2elypM0mW4gVbMgjkTpBZcMlDPJvxWGReJdxt14DKu fkBlN/YdcYvLdM2qFN2nJZeTxbLZpK2P0kNN5Sfig8/BBXuQ0T+4imaFVNw0BU7tDdLMlWVWo ikFtxJENwHpp17IRcBvEONSUVPjXwi9oJR9uPCH+vseTJW7k+Bx9WIJP07X3RnGvPBtDPXQ4k HJvdsgdYyedtdUCnRhmApfMfOMUPSruKezZkH/IvCW0jvDrJ7/dZH8C3v6u3QTog4DKGCpucB XNjtLLKM+e4eqI+n1ueSjtxPsNnMAgUNPBImiB+Wlpof2cMreVVSlf7+uMcjGYC6uL3vMVhn/ bIkW5JEHHJTHNhdjZhDmUYD+bGB53+xg6iP3ot4sbIXFK4yrK/ILoegdwTI6JRFVK9kep3JPr PHLwYCALw2/mN7NSPHRP4v0FR3SUJMdoTegaeWFw66eNxI5Jv4lpdvQ8PqVI4zdpdBnQH5dqp VxmTkmt9wyMvELn5bL1N5G9VM5x/Yj8semzybh1h5q8816GPdF4/3+WRaj//ZofPweYMEWs6p Y/T+0RRihz1TPnl9pnI5UTYru+Dy8ryK4S48Ld/P5IX8tHlJTCtye9zOtN80a4awh9CO7Tdt9 Gc1lUz1ko6qnlQkVDEE/5PlrmhB1R33oomVBZ7RL3mQfXGMsU1ekDTAvzLRwtjdDOXCPUSLj/ tFbLhnz3fGEzcsIHm/x/2h79jXrhc39DWYS+LA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org PPPIOCSPASS and PPPIOCSACTIVE are implemented in ppp_generic and isdn_ppp, but the latter one doesn't work for compat mode in general, so we can move these two into the generic code. Again, the best implementation I could come up with was to merge the compat handling into the regular ppp_ioctl() function and treating all ioctl commands as compatible. Signed-off-by: Arnd Bergmann --- drivers/net/ppp/ppp_generic.c | 39 ++++++++++++++++++++++++++++++----- fs/compat_ioctl.c | 37 --------------------------------- 2 files changed, 34 insertions(+), 42 deletions(-) -- 2.20.0 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c index 8d211c9c2e4e..b8a867fdd5ad 100644 --- a/drivers/net/ppp/ppp_generic.c +++ b/drivers/net/ppp/ppp_generic.c @@ -22,6 +22,7 @@ * ==FILEVERSION 20041108== */ +#include #include #include #include @@ -567,14 +568,36 @@ struct ppp_option_data32 { #endif #ifdef CONFIG_PPP_FILTER -static int get_filter(void __user *arg, struct sock_filter **p) +#ifdef CONFIG_COMPAT +struct sock_fprog32 { + unsigned short len; + compat_caddr_t filter; +}; +#define PPPIOCSPASS32 _IOW('t', 71, struct sock_fprog32) +#define PPPIOCSACTIVE32 _IOW('t', 70, struct sock_fprog32) +#endif + +static int get_filter(void __user *arg, struct sock_filter **p, bool compat) { struct sock_fprog uprog; struct sock_filter *code = NULL; int len; - if (copy_from_user(&uprog, arg, sizeof(uprog))) - return -EFAULT; +#ifdef CONFIG_COMPAT + if (compat) { + struct sock_fprog32 uprog32; + + if (copy_from_user(&uprog32, arg, sizeof(uprog32))) + return -EFAULT; + + uprog.len = uprog32.len; + uprog.filter = compat_ptr(uprog32.filter); + } else +#endif + { + if (copy_from_user(&uprog, arg, sizeof(uprog))) + return -EFAULT; + } if (!uprog.len) { *p = NULL; @@ -772,10 +795,13 @@ static long ppp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) #ifdef CONFIG_PPP_FILTER case PPPIOCSPASS: +#ifdef CONFIG_COMPAT + case PPPIOCSPASS32: +#endif { struct sock_filter *code; - err = get_filter(argp, &code); + err = get_filter(argp, &code, cmd != PPPIOCSPASS); if (err >= 0) { struct bpf_prog *pass_filter = NULL; struct sock_fprog_kern fprog = { @@ -798,10 +824,13 @@ static long ppp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) break; } case PPPIOCSACTIVE: +#ifdef CONFIG_COMPAT + case PPPIOCSACTIVE32: +#endif { struct sock_filter *code; - err = get_filter(argp, &code); + err = get_filter(argp, &code, cmd != PPPIOCSACTIVE); if (err >= 0) { struct bpf_prog *active_filter = NULL; struct sock_fprog_kern fprog = { diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index a7cea8f9c771..d507b7189958 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -271,40 +271,6 @@ static int sg_grt_trans(struct file *file, } #endif /* CONFIG_BLOCK */ -struct sock_fprog32 { - unsigned short len; - compat_caddr_t filter; -}; - -#define PPPIOCSPASS32 _IOW('t', 71, struct sock_fprog32) -#define PPPIOCSACTIVE32 _IOW('t', 70, struct sock_fprog32) - -static int ppp_sock_fprog_ioctl_trans(struct file *file, - unsigned int cmd, struct sock_fprog32 __user *u_fprog32) -{ - struct sock_fprog __user *u_fprog64 = compat_alloc_user_space(sizeof(struct sock_fprog)); - void __user *fptr64; - u32 fptr32; - u16 flen; - - if (get_user(flen, &u_fprog32->len) || - get_user(fptr32, &u_fprog32->filter)) - return -EFAULT; - - fptr64 = compat_ptr(fptr32); - - if (put_user(flen, &u_fprog64->len) || - put_user(fptr64, &u_fprog64->filter)) - return -EFAULT; - - if (cmd == PPPIOCSPASS32) - cmd = PPPIOCSPASS; - else - cmd = PPPIOCSACTIVE; - - return do_ioctl(file, cmd, (unsigned long) u_fprog64); -} - struct ppp_idle32 { compat_time_t xmit_idle; compat_time_t recv_idle; @@ -874,9 +840,6 @@ static long do_ioctl_trans(unsigned int cmd, switch (cmd) { case PPPIOCGIDLE32: return ppp_gidle(file, cmd, argp); - case PPPIOCSPASS32: - case PPPIOCSACTIVE32: - return ppp_sock_fprog_ioctl_trans(file, cmd, argp); #ifdef CONFIG_BLOCK case SG_IO: return sg_ioctl_trans(file, cmd, argp); From patchwork Tue Apr 16 20:19:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162362 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4655626jan; Tue, 16 Apr 2019 13:21:53 -0700 (PDT) X-Google-Smtp-Source: APXvYqxm4dePsrzaRWtDpRVtPXF0cT69C9wfyDuzkV3HPaeglMJgAYXDuDfmsYQHrrM0uwFpxRpA X-Received: by 2002:a65:5183:: with SMTP id h3mr78618225pgq.53.1555446113818; Tue, 16 Apr 2019 13:21:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446113; cv=none; d=google.com; s=arc-20160816; b=Bnr1eZFCRI95ls1MF7q3h4Mkkgr050fSm7zaohnwTzTgFVR06rURE26kYL99VjnPcF oE7sk3B1QoCB4bxjzzeWja+JSmiz2TVN+wxdz3A7rcD1sfs3yNn4PlENu7tWB8iQhHDl 8tBSU9Mr15oX0wQOzmb0PAMvsIGhlpdAMYtSvCCfYKD7wubq1DJzPz9hEEr/YBPwfb4a nk+wT5vrT4tOcutB4il+hwJ3sQ5Rt8yNyxhdxCxxFiauZRyLN8WQTo3Y6LvBuXEBoWEA r52OakXgPsD34402PtyG1k0JK2FvMxpgOYRT17I+cA08Wq4Lt4x/rxhYGQ4ii5A9VUNE e1fQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=HDbkRiu56jmny1CAJz1Zb4xNQEOkWSnECo1wlppjAd0=; b=s2S2TtknmxF4lnC8V6UZLto/IwymfLjryo6AIR9spyLNyqrEgwk9HbMxVJGADyQMlD icrdHfqrnpDw+MR8zNhpFT9C7kVM3N01XGDk49gEiywt+AM9UkT7BPc9w9ckjZThEzup R47wZPiEp/RvU6ls9bTK151CiaznRUmj8uT7VU4fguWh64Kdm6cLmkm85Ziv+t9aE9O4 rbSaI5yYjlQYzZWV1CN0ltUFD5Wwsr0X+ZwP+0atOqU0eAPgq/YzNxGQISqpusJycGqY 7+akmDKKpQh7l6fi1tNhWNYUK294joH9z4xyHKetlwtLgWLAf9+t0lw90VNLZJeydj/y 64lg== 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 o10si47562048pgg.314.2019.04.16.13.21.53; Tue, 16 Apr 2019 13:21: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 S1730770AbfDPUVw (ORCPT + 30 others); Tue, 16 Apr 2019 16:21:52 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:46449 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730022AbfDPUVr (ORCPT ); Tue, 16 Apr 2019 16:21:47 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MK5BG-1hYhvb2HTK-00LYy0; Tue, 16 Apr 2019 22:21:37 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Alexandre Belloni , Alessandro Zummo , linux-rtc@vger.kernel.org Subject: [PATCH v3 07/26] compat_ioctl: move rtc handling into rtc-dev.c Date: Tue, 16 Apr 2019 22:19:45 +0200 Message-Id: <20190416202013.4034148-8-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:B2ClSMSiEFlnaEEi3ndg7yav6kA3YQMp22nXP4yMYACDK4GCVb8 so8/3NOd0R8UETnhaAWoNo8PJueRe4PlnmV/ESRHVb3ZnuTV5i0rkpbg5tGVq6jeY3MfCJo KONeeBv5yswcOlSgGCwuYRDAJLVMmi0N+iCoOX88gKvK6v6vqiPXb9upPHvJu3hptAjzTpl 7S7kIEa+X35b9UoxeZu5w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:0MmAwt7Sbvk=:fEf2j0EDW7jMOmEKI61Onk /uMt4yFXfPUDC7H4WXsovokdtvCOqDjm6IRHEvf4NYW3a/7GaCwJDf/3Ol+Pt5UwAEvBSQe8t OEposH/RXVTu0ClMzs0XJCZvW8fzHX73ugPoirOpNOyaX4IXHCxhnLx3S1Llx30mPFm98bRL7 t55yZp4xJnlRHsTKBp6RGd5SiAeBVuJX+QgITzgCiwUQRyNAkNl0BmqpEeN1Sx7q1EfKYkK0I 0CbczoMSrnbTnX+CZLsHjg3rMpqfdevS143P1REMXfveYLfQYRc8XeyRWsEzOtnSlZSS13ilJ OGrUCB2767hNAr1W7Jy9fxX+WRSE0NLbUiaRCX8PV7js/RAQHYG8ibFCk8G7C2ianjgNu6w2z K64IkyPiss326rAkjXrkOEdqYjp0kx12/hNbKVPYTP7bXR9JvQ+LlUhddRT9z7Mn5B8RojJ59 NbgzhqenuM+Kcw8PFMuo3A6A3JclLy1pde+oP0UF/wDyfEvr8jYsHi+lbVQa0hZ5MJF0LF+l1 MRiTB4Zw3aDerVOrWdxaxYWSjG3fr1uwv8QmowYuhsWD0adelfl6/+jnuyXZ4b1fmvzTLWkE5 jnqO/QnFYJgsDUGdxOhKQq21e2c9ByLOR9HITFiKHtyMXg3EzlnBByF6rSSZW/OUHHEfm7JCf 8stZMR4cVAzwcEVek1O9IFmr7nIsOlfPRM0o5g1B8yyYeFUDZkTTWO6il8Jj7LDU9mBvJ8MQu Oab33A9/ZJL/xvy/JnrRQUqyOADHsS46zhjoDQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org We no longer need the rtc compat handling to be in common code, now that all drivers are either moved to the rtc-class framework, or (rarely) exist in drivers/char for architectures without compat mode (m68k, alpha and ia64, respectively). I checked the list of ioctl commands in drivers, and the ones that are not already handled are all compatible, again with the one exception of m68k driver, which implements RTC_PLL_GET and RTC_PLL_SET, but has no compat mode. Since the ioctl commands are either compatible or differ in both structure and command code between 32-bit and 64-bit, we can merge the compat handler into the native one and just implement the two common compat commands (RTC_IRQP_READ, RTC_IRQP_SET) there. The result is a slight change in behavior, as a native 64-bit process will now also handle the 32-bit commands (RTC_IRQP_SET32/RTC_IRQP_SET). The old conversion handler also deals with RTC_EPOCH_READ and RTC_EPOCH_SET, which are not handled in rtc-dev.c but only in a single device driver (rtc-vr41xx), so I'm adding the compat version in the same place. I don't expect other drivers to need those commands in the future. Acked-by: Alexandre Belloni Signed-off-by: Arnd Bergmann --- v2: merge compat handler into ioctl function to avoid the compat_alloc_user_space() roundtrip, based on feedback from Al Viro. --- drivers/rtc/dev.c | 13 ++++++++- drivers/rtc/rtc-vr41xx.c | 10 +++++++ fs/compat_ioctl.c | 61 ++-------------------------------------- 3 files changed, 25 insertions(+), 59 deletions(-) -- 2.20.0 diff --git a/drivers/rtc/dev.c b/drivers/rtc/dev.c index 1d006ef4bb57..a63779ccc8aa 100644 --- a/drivers/rtc/dev.c +++ b/drivers/rtc/dev.c @@ -13,6 +13,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include @@ -359,10 +360,19 @@ static long rtc_dev_ioctl(struct file *file, mutex_unlock(&rtc->ops_lock); return rtc_update_irq_enable(rtc, 0); +#ifdef CONFIG_64BIT +#define RTC_IRQP_SET32 _IOW('p', 0x0c, __u32) +#define RTC_IRQP_READ32 _IOR('p', 0x0b, __u32) + case RTC_IRQP_SET32: + err = rtc_irq_set_freq(rtc, arg); + break; + case RTC_IRQP_READ32: + err = put_user(rtc->irq_freq, (unsigned int __user *)uarg); + break; +#endif case RTC_IRQP_SET: err = rtc_irq_set_freq(rtc, arg); break; - case RTC_IRQP_READ: err = put_user(rtc->irq_freq, (unsigned long __user *)uarg); break; @@ -434,6 +444,7 @@ static const struct file_operations rtc_dev_fops = { .read = rtc_dev_read, .poll = rtc_dev_poll, .unlocked_ioctl = rtc_dev_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = rtc_dev_open, .release = rtc_dev_release, .fasync = rtc_dev_fasync, diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c index e66d0f63cee2..62c16a3b2d5c 100644 --- a/drivers/rtc/rtc-vr41xx.c +++ b/drivers/rtc/rtc-vr41xx.c @@ -17,6 +17,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include #include #include #include @@ -79,6 +80,10 @@ static void __iomem *rtc2_base; #define rtc2_read(offset) readw(rtc2_base + (offset)) #define rtc2_write(offset, value) writew((value), rtc2_base + (offset)) +/* 32-bit compat for ioctls that nobody else uses */ +#define RTC_EPOCH_READ32 _IOR('p', 0x0d, __u32) +#define RTC_EPOCH_SET32 _IOW('p', 0x0e, __u32) + static unsigned long epoch = 1970; /* Jan 1 1970 00:00:00 */ static DEFINE_SPINLOCK(rtc_lock); @@ -192,6 +197,11 @@ static int vr41xx_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long switch (cmd) { case RTC_EPOCH_READ: return put_user(epoch, (unsigned long __user *)arg); +#ifdef CONFIG_64BIT + case RTC_EPOCH_READ32: + return put_user(epoch, (unsigned int __user *)arg); + case RTC_EPOCH_SET32: +#endif case RTC_EPOCH_SET: /* Doesn't support before 1900 */ if (arg < 1900) diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index e6dbd956cf66..fee116e822d8 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -32,7 +32,6 @@ #include #include #include -#include #include #include #include @@ -343,37 +342,6 @@ static int mt_ioctl_trans(struct file *file, #define HCIUARTSETFLAGS _IOW('U', 203, int) #define HCIUARTGETFLAGS _IOR('U', 204, int) -#define RTC_IRQP_READ32 _IOR('p', 0x0b, compat_ulong_t) -#define RTC_IRQP_SET32 _IOW('p', 0x0c, compat_ulong_t) -#define RTC_EPOCH_READ32 _IOR('p', 0x0d, compat_ulong_t) -#define RTC_EPOCH_SET32 _IOW('p', 0x0e, compat_ulong_t) - -static int rtc_ioctl(struct file *file, - unsigned cmd, void __user *argp) -{ - unsigned long __user *valp = compat_alloc_user_space(sizeof(*valp)); - int ret; - - if (valp == NULL) - return -EFAULT; - switch (cmd) { - case RTC_IRQP_READ32: - case RTC_EPOCH_READ32: - ret = do_ioctl(file, (cmd == RTC_IRQP_READ32) ? - RTC_IRQP_READ : RTC_EPOCH_READ, - (unsigned long)valp); - if (ret) - return ret; - return convert_in_user(valp, (unsigned int __user *)argp); - case RTC_IRQP_SET32: - return do_ioctl(file, RTC_IRQP_SET, (unsigned long)argp); - case RTC_EPOCH_SET32: - return do_ioctl(file, RTC_EPOCH_SET, (unsigned long)argp); - } - - return -ENOIOCTLCMD; -} - /* on ia32 l_start is on a 32-bit boundary */ #if defined(CONFIG_IA64) || defined(CONFIG_X86_64) struct space_resv_32 { @@ -457,21 +425,6 @@ COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) /* Big V (don't complain on serial console) */ IGNORE_IOCTL(VT_OPENQRY) IGNORE_IOCTL(VT_GETMODE) -/* Little p (/dev/rtc, /dev/envctrl, etc.) */ -COMPATIBLE_IOCTL(RTC_AIE_ON) -COMPATIBLE_IOCTL(RTC_AIE_OFF) -COMPATIBLE_IOCTL(RTC_UIE_ON) -COMPATIBLE_IOCTL(RTC_UIE_OFF) -COMPATIBLE_IOCTL(RTC_PIE_ON) -COMPATIBLE_IOCTL(RTC_PIE_OFF) -COMPATIBLE_IOCTL(RTC_WIE_ON) -COMPATIBLE_IOCTL(RTC_WIE_OFF) -COMPATIBLE_IOCTL(RTC_ALM_SET) -COMPATIBLE_IOCTL(RTC_ALM_READ) -COMPATIBLE_IOCTL(RTC_RD_TIME) -COMPATIBLE_IOCTL(RTC_SET_TIME) -COMPATIBLE_IOCTL(RTC_WKALM_SET) -COMPATIBLE_IOCTL(RTC_WKALM_RD) /* * These two are only for the sbus rtc driver, but * hwclock tries them on every rtc device first when @@ -806,24 +759,16 @@ IGNORE_IOCTL(FBIOGCURSOR32) static long do_ioctl_trans(unsigned int cmd, unsigned long arg, struct file *file) { - void __user *argp = compat_ptr(arg); - switch (cmd) { #ifdef CONFIG_BLOCK case SG_IO: - return sg_ioctl_trans(file, cmd, argp); + return sg_ioctl_trans(file, cmd, compat_ptr(arg)); case SG_GET_REQUEST_TABLE: - return sg_grt_trans(file, cmd, argp); + return sg_grt_trans(file, cmd, compat_ptr(arg)); case MTIOCGET32: case MTIOCPOS32: - return mt_ioctl_trans(file, cmd, argp); + return mt_ioctl_trans(file, cmd, compat_ptr(arg)); #endif - /* Not implemented in the native kernel */ - case RTC_IRQP_READ32: - case RTC_IRQP_SET32: - case RTC_EPOCH_READ32: - case RTC_EPOCH_SET32: - return rtc_ioctl(file, cmd, argp); } /* From patchwork Tue Apr 16 20:19:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162363 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4655906jan; Tue, 16 Apr 2019 13:22:13 -0700 (PDT) X-Google-Smtp-Source: APXvYqwPi4EGu2gq/rJwY9cUXjlXeaugpn5MDEZMpqagGOLAIkUq5TWqkMOAiHksIA/PGSUN7xG3 X-Received: by 2002:a17:902:d705:: with SMTP id w5mr2772619ply.200.1555446133192; Tue, 16 Apr 2019 13:22:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446133; cv=none; d=google.com; s=arc-20160816; b=niwj3GlYyPfXqqQ7K8JjKjmppk9yMlPFrFHj68kq2mpLWqq+kRG44QfRqPii6PCFi5 85SnnZLE+WjF8dPrIOpGWAzdlzmofAOLVA9AXXUFihfgpykJbgV5QsCQ69LqU7w206YE j1c3w48+Q8BcFp84YjLtfJtPI1c8PRwIPgNn0xNyIAder98gqBJrn6fwuhu2flcBjaID 6rgrETVfLjp+OABpHsandnzyAlP/1Lnb6V+qf8wm9gTybN0SMh0mnVP2TKF3aHFWuLRQ ifgsHXv4HBFkUQqwgraPjogLdQUqqkfLCMnPq937FEXXyvDPJbcSu1OYuwHDHW2fna8g 7MLQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NJCyBxrv8LLUpEAH4kxYv+lCNM8pB5HCWeGrFT6hIKE=; b=h/BzpRPCZzpHEZSH2Hzo6l3G3ubpEJCI4oRK0k1wrW9aQE40rcR4LEw1ceDR466/TD gch1WGix+KjMvnPztvhcMCaP3a59ZV9o/WRhFlylDixOKaQw+smbOZYlYDs7/a8qOQy3 leISu9ggnbJkyPWJB/yj6OC8eV8rwyLtjMQODn+6ti5RKn9LhyAyltspqQh29fb5OrQK jwte6751dQ6p+j/G87bmfj/t050aO2unsH6taWyuit//S9vc9GG94byft1X9TzuyWvAG 4AfZFYdmTYimf6XRCBTHbLfvQpIaHWilvAY40VsH2+Ir6nC8/E9kEsxeaMKcNdrzPLqC MWEA== 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 ck14si41974269plb.198.2019.04.16.13.22.12; Tue, 16 Apr 2019 13:22:13 -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 S1730781AbfDPUWL (ORCPT + 30 others); Tue, 16 Apr 2019 16:22:11 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:55077 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729889AbfDPUVl (ORCPT ); Tue, 16 Apr 2019 16:21:41 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MelWf-1ggbw644En-00akCZ; Tue, 16 Apr 2019 22:21:40 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 08/26] compat_ioctl: add compat_ptr_ioctl() Date: Tue, 16 Apr 2019 22:19:46 +0200 Message-Id: <20190416202013.4034148-9-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:3cLQXVaj78IIldWV0E5molvs+Vy9QLxh58Bd4yL3smwUBpHfezm 8XTJdRwsNVuUUiQNSjazq3JzYH9z9pTAqB2RN/oyGHMBBNs7ac8xe32Cgh9913wXNip4Uzr cmJWzgW0Es6glE+ICLxZSZbnmClTzY/2jI5LoGktjktovKm+DXd2t9O5OsNPJNVYqiqr4DF xFwYQvm7y2ABrFbdSPLwQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:M2anEmf9acI=:TvKqnxJ6XRR94QN9cSCD40 J+VR387v9tanlAxZrH0w6Db8780kw37ZVZpFd/bfhS9vlExIReXxSQ042IqQARJhTXPbyPrdG 0nUHe5dpYAZ0NV15AHLPMzxMWN+zmJpC5iTaHO7MW38GXY1GRLShZmvnKKYB20APzczL09snG y/CWhZcfJ4oKjrcpLuM8jTzzdpXR1EQSI9CdTcEXt0cz4TaixSyP/P0xEvxHGq/VU1TCikpHF Nzk3p145UyYz36klkKMhYY4VsHVD1D8RSuPvOuNF/dmCr8ju/Z5c44UmXnkmUReP/B6htFfph qlrxXmPEbiR8PO+GgAK4U28UJ5nSWhCai+rWcwKbf9pYrZ/DX6zGGc5j3xLwhdUtse+69vktI zuuuYql8aOCPfA3q4GKjDXZkScLytGoauzUQYCbBp3cJ3ZDl3+843OOtnI1Vm/GsrDRs0xvKi Fhs6Xg2MKcZmn09KiyEpS34kiDFMWiYtI392zcfPKkLcpvrIVsdQ33UGnxzEUHwduc/TqHgcx +1jMAca2T1xJdQh30nSQVPGidieJM/VODF9/kuIxwTElKHLeDPk4Yxwqh/QAsMexNo4rBjXYd VKo72Uf2PBnlefu4Q7qiBvBGiJnHQcLvQQ3Z8omdyY+I4P+Z0XCD+6G5n+ZZkZK/FAf+6bSys ZeSl4IZCVlcDIwZ3lyOHstkGWg8Y2+HtsOjqhLtI0y8DcDtRVAPwOF4uNVdTRm+zWA4Du9XtE KXVHrJZ2KDNESdKf2gs5PJOdTOjtTBQZu/vTaw== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Many drivers have ioctl() handlers that are completely compatible between 32-bit and 64-bit architectures, except for the argument that is passed down from user space and may have to be passed through compat_ptr() in order to become a valid 64-bit pointer. Using ".compat_ptr = compat_ptr_ioctl" in file operations should let us simplify a lot of those drivers to avoid #ifdef checks, and convert additional drivers that don't have proper compat handling yet. Signed-off-by: Arnd Bergmann --- v2: use compat_ptr_ioctl instead of generic_compat_ioctl_ptrarg, as suggested by Al Viro --- fs/compat_ioctl.c | 10 ++++++++++ include/linux/fs.h | 7 +++++++ 2 files changed, 17 insertions(+) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index fee116e822d8..ab2ff530313b 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -78,6 +78,16 @@ get_user(val, srcptr) || put_user(val, dstptr); \ }) +/* helper function to avoid trivial compat_ioctl() implementations */ +long compat_ptr_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + if (!file->f_op->unlocked_ioctl) + return -ENOIOCTLCMD; + + return file->f_op->unlocked_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); +} +EXPORT_SYMBOL(compat_ptr_ioctl); + static inline int do_ioctl(struct file *file, unsigned int cmd, unsigned long arg) { int err; diff --git a/include/linux/fs.h b/include/linux/fs.h index dd28e7679089..dc4138314635 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1698,6 +1698,13 @@ int vfs_mkobj(struct dentry *, umode_t, extern long vfs_ioctl(struct file *file, unsigned int cmd, unsigned long arg); +#ifdef CONFIG_COMPAT +extern long compat_ptr_ioctl(struct file *file, unsigned int cmd, + unsigned long arg); +#else +#define compat_ptr_ioctl NULL +#endif + /* * VFS file helper functions. */ From patchwork Tue Apr 16 20:19:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162366 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4657114jan; Tue, 16 Apr 2019 13:23:36 -0700 (PDT) X-Google-Smtp-Source: APXvYqz5gPO0SblT2fVOPeRYyheL2xufKArmekyEsdi+BzjTNUXfwj9qyVm93hOgf+LUx5orbQJ9 X-Received: by 2002:a62:b602:: with SMTP id j2mr85829110pff.68.1555446216825; Tue, 16 Apr 2019 13:23:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446216; cv=none; d=google.com; s=arc-20160816; b=tQDA6T4AT7DMygQ0ATJNomXtU4EQMb+2k39KfoiNiWRA9liJWdN2VcNk3ABr/83otA j+JFk8DhibxxwIJ7aDO7xvV9U+MaDHjXJyOO4kPpKd9gh1AnW6eK6GVHRc4ubZPoIPGr Mliso7BeDrXdjrK5R6Zwh9rYo5zVpMkRoCTFlbikLhn0MdzpANrCLKUsYrcZR9CUpdE+ NPlkjbNy5b4vCmT28ZnCukxja2IwUyVal9+nfr8+Rd+VhexKSKgdXr0aK6fIbD0Gca2u AeeF7wStChqdjbsYVywW4oe+84ONwoToiQ0OfBv8nY4DupJ4FKblr0Vq0pWePi60STB4 sDqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=QyJVypYCNLn9xtpKihQwUJ+IxwiHzCE3kp8+ErFNf8Y=; b=Mb/hR09Tei2RWhxaJxH3PDSj1L5QO+scgkgbChRmL4QmSt9wKeZfMiK8LZwtguC8zh j8fgVJsTnrTWREeTf3YYhfWw4PqoLid5tjZbGLhiJW1Qacf/S1Sgr5n1gtj/HLjmvFHf lIklJAtxwFXMCFFLmFfqxMCn0nDhtm29al1m5K5ldJ6QpPUaANSie+aP78VTAPBBNeIb Kl5AcSWPPiZe5JSyC5mOJ6VIJozM23Pi52PIPqGQkomV2TYCKHCCdArkrnqTIBs15iGm coxwaCHgzGD/CSAMgGPgjYgUe1E/yQ5cRmlZAW9qrB4GKjdLxeUor259YVky33uiKWjm oFsg== 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 33si48940896pgm.385.2019.04.16.13.23.36; Tue, 16 Apr 2019 13:23:36 -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 S1730520AbfDPUXf (ORCPT + 30 others); Tue, 16 Apr 2019 16:23:35 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:56795 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729117AbfDPUXe (ORCPT ); Tue, 16 Apr 2019 16:23:34 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1M7NaW-1hDAfc1scO-007lBC; Tue, 16 Apr 2019 22:22:16 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Greg Kroah-Hartman , Jarkko Sakkinen , Jason Gunthorpe , Sudip Mukherjee , Peter Huewe , Jason Gunthorpe , Stefan Richter , Jiri Kosina , Benjamin Tissoires , Alexander Shishkin , Maxime Coquelin , Alexandre Torgue , Tomas Winkler , Artem Bityutskiy , Richard Weinberger , David Woodhouse , Brian Norris , Boris Brezillon , Marek Vasut , "David S. Miller" , Alex Williamson , "Michael S. Tsirkin" , Jason Wang , Paolo Bonzini , Stefan Hajnoczi , OGAWA Hirofumi , Willem de Bruijn , linux-integrity@vger.kernel.org, linux1394-devel@lists.sourceforge.net, linux-usb@vger.kernel.org, linux-input@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-mtd@lists.infradead.org, netdev@vger.kernel.org, devel@driverdev.osuosl.org, kvm@vger.kernel.org, virtualization@lists.linux-foundation.org Subject: [PATCH v3 09/26] compat_ioctl: move drivers to compat_ptr_ioctl Date: Tue, 16 Apr 2019 22:19:47 +0200 Message-Id: <20190416202013.4034148-10-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:vaVmI0/zf8BxnW+oAZ9lHe+8dJU/oQPqer6O5ZzvxK60DJtUya3 +6c6sbOzVLNSTUjo4tbh+Auabptrb6LLljmHb2BiKR6GUrlD24YQjg0hYz6Jzenp76pq7Xd ixQEc0eCHYDcWkwtZPjxqks8FJMoz3s99zkDTxhS+Y4Ock66yPr2gky+4CGATvyD1oiQwh6 nzE7YoaL8GMC++TWHt/Qg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:s9me+MZLR/A=:tyVhJsXkEmvHXn8AymnKr9 HUyNSOqLhUsxXw7rKWH5ML4/Jy7o+Gm53iLD3LCR4okOkE/EEXLk+zTs4KG210jSdFwZIKoDF 6Wfey3sgnQdXBc7aGUosxbD7+xkBiJePINnnNoc6nK8IPzggm7ihxE2lyGjNfZb/FAtXuysAG 5EvJzjKTjjnrpFIO+xRrHf7fY3fCACLtfKpvYj/Xtewk64YQA76V6wFbiQerpzHSMKvbY6SBH hpT57QDqw1BtNdrVZokb+pXwj3Y/VZP8ZyP47TUZpl/xbk2D+YvVnKMl7zWOEpnpTPzM9Ftzg a1zBDSoAslK9G6BjZdhMh1AZO/prjbyLUmJ3ZH6GrainW4H53FvEDt23jUYGefcukOTivQMiV XSQjy4ebMfxdz+cUxmi3t7fiAud2xtJ7qWgjvSC5HKwtb//u3ROul+PVEOIEeyf+ypqSm7zBe J9u2S9pFezuiOb7VrODWUqvfPMgfFSuPoHsINjy7oyvetF0ZgyP35FBBC1Y1Djfu/S9daHsTb ncEQvANbb/OrkNqDeEVvN3Cd6a1FSBQdHMv+5zP9xPL+GvWO8GqHRxW8f4r6P+MH/Z7GR32aW l3socAy2cOyiF2ssovam82OvHDEhE4cItbDq4ZnYCiutiBd3hOuNIIecZcj8hNvIHwWeYR/3J LDBZSMc+K/iPEQF96D4ibpkjOEMRcT/+FUWbZ4a+gD0mviqmcllP14YnTO9D9GWzZXtHs+fhd vEYTHJis4P6//WcynEV1ZZP/60zP0CK2C3ozZQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Each of these drivers has a copy of the same trivial helper function to convert the pointer argument and then call the native ioctl handler. We now have a generic implementation of that, so use it. Acked-by: Greg Kroah-Hartman Reviewed-by: Jarkko Sakkinen Reviewed-by: Jason Gunthorpe Signed-off-by: Arnd Bergmann --- drivers/char/ppdev.c | 12 +--------- drivers/char/tpm/tpm_vtpm_proxy.c | 12 +--------- drivers/firewire/core-cdev.c | 12 +--------- drivers/hid/usbhid/hiddev.c | 11 +-------- drivers/hwtracing/stm/core.c | 12 +--------- drivers/misc/mei/main.c | 22 +---------------- drivers/mtd/ubi/cdev.c | 36 +++------------------------- drivers/net/tap.c | 12 +--------- drivers/staging/pi433/pi433_if.c | 12 +--------- drivers/usb/core/devio.c | 16 +------------ drivers/vfio/vfio.c | 39 +++---------------------------- drivers/vhost/net.c | 12 +--------- drivers/vhost/scsi.c | 12 +--------- drivers/vhost/test.c | 12 +--------- drivers/vhost/vsock.c | 12 +--------- fs/fat/file.c | 13 +---------- 16 files changed, 20 insertions(+), 237 deletions(-) -- 2.20.0 Reviewed-by: Stefan Hajnoczi diff --git a/drivers/char/ppdev.c b/drivers/char/ppdev.c index 1ae77b41050a..e96c8d9623e0 100644 --- a/drivers/char/ppdev.c +++ b/drivers/char/ppdev.c @@ -674,14 +674,6 @@ static long pp_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return ret; } -#ifdef CONFIG_COMPAT -static long pp_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - return pp_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); -} -#endif - static int pp_open(struct inode *inode, struct file *file) { unsigned int minor = iminor(inode); @@ -790,9 +782,7 @@ static const struct file_operations pp_fops = { .write = pp_write, .poll = pp_poll, .unlocked_ioctl = pp_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = pp_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = pp_open, .release = pp_release, }; diff --git a/drivers/char/tpm/tpm_vtpm_proxy.c b/drivers/char/tpm/tpm_vtpm_proxy.c index d74f3de74ae6..fb845f0a430b 100644 --- a/drivers/char/tpm/tpm_vtpm_proxy.c +++ b/drivers/char/tpm/tpm_vtpm_proxy.c @@ -675,20 +675,10 @@ static long vtpmx_fops_ioctl(struct file *f, unsigned int ioctl, } } -#ifdef CONFIG_COMPAT -static long vtpmx_fops_compat_ioctl(struct file *f, unsigned int ioctl, - unsigned long arg) -{ - return vtpmx_fops_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations vtpmx_fops = { .owner = THIS_MODULE, .unlocked_ioctl = vtpmx_fops_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vtpmx_fops_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index 16a7045736a9..fb934680fdd3 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -1659,14 +1659,6 @@ static long fw_device_op_ioctl(struct file *file, return dispatch_ioctl(file->private_data, cmd, (void __user *)arg); } -#ifdef CONFIG_COMPAT -static long fw_device_op_compat_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) -{ - return dispatch_ioctl(file->private_data, cmd, compat_ptr(arg)); -} -#endif - static int fw_device_op_mmap(struct file *file, struct vm_area_struct *vma) { struct client *client = file->private_data; @@ -1808,7 +1800,5 @@ const struct file_operations fw_device_ops = { .mmap = fw_device_op_mmap, .release = fw_device_op_release, .poll = fw_device_op_poll, -#ifdef CONFIG_COMPAT - .compat_ioctl = fw_device_op_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index a746017fac17..ef4a1cd389d6 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c @@ -855,13 +855,6 @@ static long hiddev_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return r; } -#ifdef CONFIG_COMPAT -static long hiddev_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - return hiddev_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations hiddev_fops = { .owner = THIS_MODULE, .read = hiddev_read, @@ -871,9 +864,7 @@ static const struct file_operations hiddev_fops = { .release = hiddev_release, .unlocked_ioctl = hiddev_ioctl, .fasync = hiddev_fasync, -#ifdef CONFIG_COMPAT - .compat_ioctl = hiddev_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c index c7ba8acfd4d5..454da259f144 100644 --- a/drivers/hwtracing/stm/core.c +++ b/drivers/hwtracing/stm/core.c @@ -840,23 +840,13 @@ stm_char_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return err; } -#ifdef CONFIG_COMPAT -static long -stm_char_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) -{ - return stm_char_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); -} -#else -#define stm_char_compat_ioctl NULL -#endif - static const struct file_operations stm_fops = { .open = stm_char_open, .release = stm_char_release, .write = stm_char_write, .mmap = stm_char_mmap, .unlocked_ioctl = stm_char_ioctl, - .compat_ioctl = stm_char_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = no_llseek, }; diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c index 87281b3695e6..cc6af92cdef0 100644 --- a/drivers/misc/mei/main.c +++ b/drivers/misc/mei/main.c @@ -535,24 +535,6 @@ static long mei_ioctl(struct file *file, unsigned int cmd, unsigned long data) return rets; } -/** - * mei_compat_ioctl - the compat IOCTL function - * - * @file: pointer to file structure - * @cmd: ioctl command - * @data: pointer to mei message structure - * - * Return: 0 on success , <0 on error - */ -#ifdef CONFIG_COMPAT -static long mei_compat_ioctl(struct file *file, - unsigned int cmd, unsigned long data) -{ - return mei_ioctl(file, cmd, (unsigned long)compat_ptr(data)); -} -#endif - - /** * mei_poll - the poll function * @@ -855,9 +837,7 @@ static const struct file_operations mei_fops = { .owner = THIS_MODULE, .read = mei_read, .unlocked_ioctl = mei_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = mei_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = mei_open, .release = mei_release, .write = mei_write, diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c index 947a8adbc799..265d34fa3efa 100644 --- a/drivers/mtd/ubi/cdev.c +++ b/drivers/mtd/ubi/cdev.c @@ -1091,36 +1091,6 @@ static long ctrl_cdev_ioctl(struct file *file, unsigned int cmd, return err; } -#ifdef CONFIG_COMPAT -static long vol_cdev_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - unsigned long translated_arg = (unsigned long)compat_ptr(arg); - - return vol_cdev_ioctl(file, cmd, translated_arg); -} - -static long ubi_cdev_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - unsigned long translated_arg = (unsigned long)compat_ptr(arg); - - return ubi_cdev_ioctl(file, cmd, translated_arg); -} - -static long ctrl_cdev_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - unsigned long translated_arg = (unsigned long)compat_ptr(arg); - - return ctrl_cdev_ioctl(file, cmd, translated_arg); -} -#else -#define vol_cdev_compat_ioctl NULL -#define ubi_cdev_compat_ioctl NULL -#define ctrl_cdev_compat_ioctl NULL -#endif - /* UBI volume character device operations */ const struct file_operations ubi_vol_cdev_operations = { .owner = THIS_MODULE, @@ -1131,7 +1101,7 @@ const struct file_operations ubi_vol_cdev_operations = { .write = vol_cdev_write, .fsync = vol_cdev_fsync, .unlocked_ioctl = vol_cdev_ioctl, - .compat_ioctl = vol_cdev_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; /* UBI character device operations */ @@ -1139,13 +1109,13 @@ const struct file_operations ubi_cdev_operations = { .owner = THIS_MODULE, .llseek = no_llseek, .unlocked_ioctl = ubi_cdev_ioctl, - .compat_ioctl = ubi_cdev_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; /* UBI control character device operations */ const struct file_operations ubi_ctrl_cdev_operations = { .owner = THIS_MODULE, .unlocked_ioctl = ctrl_cdev_ioctl, - .compat_ioctl = ctrl_cdev_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = no_llseek, }; diff --git a/drivers/net/tap.c b/drivers/net/tap.c index 2ea9b4976f4a..ebe425e65992 100644 --- a/drivers/net/tap.c +++ b/drivers/net/tap.c @@ -1123,14 +1123,6 @@ static long tap_ioctl(struct file *file, unsigned int cmd, } } -#ifdef CONFIG_COMPAT -static long tap_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - return tap_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations tap_fops = { .owner = THIS_MODULE, .open = tap_open, @@ -1140,9 +1132,7 @@ static const struct file_operations tap_fops = { .poll = tap_poll, .llseek = no_llseek, .unlocked_ioctl = tap_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = tap_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static int tap_get_user_xdp(struct tap_queue *q, struct xdp_buff *xdp) diff --git a/drivers/staging/pi433/pi433_if.c b/drivers/staging/pi433/pi433_if.c index b2314636dc89..ab7dfc7c2917 100644 --- a/drivers/staging/pi433/pi433_if.c +++ b/drivers/staging/pi433/pi433_if.c @@ -935,16 +935,6 @@ pi433_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) return retval; } -#ifdef CONFIG_COMPAT -static long -pi433_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) -{ - return pi433_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); -} -#else -#define pi433_compat_ioctl NULL -#endif /* CONFIG_COMPAT */ - /*-------------------------------------------------------------------------*/ static int pi433_open(struct inode *inode, struct file *filp) @@ -1101,7 +1091,7 @@ static const struct file_operations pi433_fops = { .write = pi433_write, .read = pi433_read, .unlocked_ioctl = pi433_ioctl, - .compat_ioctl = pi433_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = pi433_open, .release = pi433_release, .llseek = no_llseek, diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index fa783531ee88..d75052b36584 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -2568,18 +2568,6 @@ static long usbdev_ioctl(struct file *file, unsigned int cmd, return ret; } -#ifdef CONFIG_COMPAT -static long usbdev_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - int ret; - - ret = usbdev_do_ioctl(file, cmd, compat_ptr(arg)); - - return ret; -} -#endif - /* No kernel lock - fine */ static __poll_t usbdev_poll(struct file *file, struct poll_table_struct *wait) @@ -2603,9 +2591,7 @@ const struct file_operations usbdev_file_operations = { .read = usbdev_read, .poll = usbdev_poll, .unlocked_ioctl = usbdev_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = usbdev_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .mmap = usbdev_mmap, .open = usbdev_open, .release = usbdev_release, diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c index a3030cdf3c18..a5efe82584a5 100644 --- a/drivers/vfio/vfio.c +++ b/drivers/vfio/vfio.c @@ -1200,15 +1200,6 @@ static long vfio_fops_unl_ioctl(struct file *filep, return ret; } -#ifdef CONFIG_COMPAT -static long vfio_fops_compat_ioctl(struct file *filep, - unsigned int cmd, unsigned long arg) -{ - arg = (unsigned long)compat_ptr(arg); - return vfio_fops_unl_ioctl(filep, cmd, arg); -} -#endif /* CONFIG_COMPAT */ - static int vfio_fops_open(struct inode *inode, struct file *filep) { struct vfio_container *container; @@ -1291,9 +1282,7 @@ static const struct file_operations vfio_fops = { .read = vfio_fops_read, .write = vfio_fops_write, .unlocked_ioctl = vfio_fops_unl_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vfio_fops_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .mmap = vfio_fops_mmap, }; @@ -1572,15 +1561,6 @@ static long vfio_group_fops_unl_ioctl(struct file *filep, return ret; } -#ifdef CONFIG_COMPAT -static long vfio_group_fops_compat_ioctl(struct file *filep, - unsigned int cmd, unsigned long arg) -{ - arg = (unsigned long)compat_ptr(arg); - return vfio_group_fops_unl_ioctl(filep, cmd, arg); -} -#endif /* CONFIG_COMPAT */ - static int vfio_group_fops_open(struct inode *inode, struct file *filep) { struct vfio_group *group; @@ -1636,9 +1616,7 @@ static int vfio_group_fops_release(struct inode *inode, struct file *filep) static const struct file_operations vfio_group_fops = { .owner = THIS_MODULE, .unlocked_ioctl = vfio_group_fops_unl_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vfio_group_fops_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = vfio_group_fops_open, .release = vfio_group_fops_release, }; @@ -1703,24 +1681,13 @@ static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct *vma) return device->ops->mmap(device->device_data, vma); } -#ifdef CONFIG_COMPAT -static long vfio_device_fops_compat_ioctl(struct file *filep, - unsigned int cmd, unsigned long arg) -{ - arg = (unsigned long)compat_ptr(arg); - return vfio_device_fops_unl_ioctl(filep, cmd, arg); -} -#endif /* CONFIG_COMPAT */ - static const struct file_operations vfio_device_fops = { .owner = THIS_MODULE, .release = vfio_device_fops_release, .read = vfio_device_fops_read, .write = vfio_device_fops_write, .unlocked_ioctl = vfio_device_fops_unl_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vfio_device_fops_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .mmap = vfio_device_fops_mmap, }; diff --git a/drivers/vhost/net.c b/drivers/vhost/net.c index df51a35cf537..1642b3573230 100644 --- a/drivers/vhost/net.c +++ b/drivers/vhost/net.c @@ -1765,14 +1765,6 @@ static long vhost_net_ioctl(struct file *f, unsigned int ioctl, } } -#ifdef CONFIG_COMPAT -static long vhost_net_compat_ioctl(struct file *f, unsigned int ioctl, - unsigned long arg) -{ - return vhost_net_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); -} -#endif - static ssize_t vhost_net_chr_read_iter(struct kiocb *iocb, struct iov_iter *to) { struct file *file = iocb->ki_filp; @@ -1808,9 +1800,7 @@ static const struct file_operations vhost_net_fops = { .write_iter = vhost_net_chr_write_iter, .poll = vhost_net_chr_poll, .unlocked_ioctl = vhost_net_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vhost_net_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = vhost_net_open, .llseek = noop_llseek, }; diff --git a/drivers/vhost/scsi.c b/drivers/vhost/scsi.c index 618fb6461017..f9b14c39d89b 100644 --- a/drivers/vhost/scsi.c +++ b/drivers/vhost/scsi.c @@ -1721,21 +1721,11 @@ vhost_scsi_ioctl(struct file *f, } } -#ifdef CONFIG_COMPAT -static long vhost_scsi_compat_ioctl(struct file *f, unsigned int ioctl, - unsigned long arg) -{ - return vhost_scsi_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations vhost_scsi_fops = { .owner = THIS_MODULE, .release = vhost_scsi_release, .unlocked_ioctl = vhost_scsi_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vhost_scsi_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = vhost_scsi_open, .llseek = noop_llseek, }; diff --git a/drivers/vhost/test.c b/drivers/vhost/test.c index 40589850eb33..61d4d98c8f70 100644 --- a/drivers/vhost/test.c +++ b/drivers/vhost/test.c @@ -298,21 +298,11 @@ static long vhost_test_ioctl(struct file *f, unsigned int ioctl, } } -#ifdef CONFIG_COMPAT -static long vhost_test_compat_ioctl(struct file *f, unsigned int ioctl, - unsigned long arg) -{ - return vhost_test_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations vhost_test_fops = { .owner = THIS_MODULE, .release = vhost_test_release, .unlocked_ioctl = vhost_test_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vhost_test_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = vhost_test_open, .llseek = noop_llseek, }; diff --git a/drivers/vhost/vsock.c b/drivers/vhost/vsock.c index bb5fc0e9fbc2..9a86202678b6 100644 --- a/drivers/vhost/vsock.c +++ b/drivers/vhost/vsock.c @@ -716,23 +716,13 @@ static long vhost_vsock_dev_ioctl(struct file *f, unsigned int ioctl, } } -#ifdef CONFIG_COMPAT -static long vhost_vsock_dev_compat_ioctl(struct file *f, unsigned int ioctl, - unsigned long arg) -{ - return vhost_vsock_dev_ioctl(f, ioctl, (unsigned long)compat_ptr(arg)); -} -#endif - static const struct file_operations vhost_vsock_fops = { .owner = THIS_MODULE, .open = vhost_vsock_dev_open, .release = vhost_vsock_dev_release, .llseek = noop_llseek, .unlocked_ioctl = vhost_vsock_dev_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = vhost_vsock_dev_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static struct miscdevice vhost_vsock_misc = { diff --git a/fs/fat/file.c b/fs/fat/file.c index b3bed32946b1..f173d9261115 100644 --- a/fs/fat/file.c +++ b/fs/fat/file.c @@ -171,15 +171,6 @@ long fat_generic_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) } } -#ifdef CONFIG_COMPAT -static long fat_generic_compat_ioctl(struct file *filp, unsigned int cmd, - unsigned long arg) - -{ - return fat_generic_ioctl(filp, cmd, (unsigned long)compat_ptr(arg)); -} -#endif - static int fat_file_release(struct inode *inode, struct file *filp) { if ((filp->f_mode & FMODE_WRITE) && @@ -209,9 +200,7 @@ const struct file_operations fat_file_operations = { .mmap = generic_file_mmap, .release = fat_file_release, .unlocked_ioctl = fat_generic_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = fat_generic_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .fsync = fat_file_fsync, .splice_read = generic_file_splice_read, .splice_write = iter_file_splice_write, From patchwork Tue Apr 16 20:19:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162365 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4656453jan; Tue, 16 Apr 2019 13:22:50 -0700 (PDT) X-Google-Smtp-Source: APXvYqzMwcNiBfNO7a5ytFCVOD3GxDAlNssP02Y45BPjFLEUaLSy4qMPpHKMxexMGbBzEXvHFJB2 X-Received: by 2002:a63:6fcf:: with SMTP id k198mr78181489pgc.158.1555446170511; Tue, 16 Apr 2019 13:22:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446170; cv=none; d=google.com; s=arc-20160816; b=ikejURvI/olJ2k3nPOQnxhGHhnzPhXXdLndoI5g/6nOTYqSagHZt56u4W8gqWgexx2 qbXsVuuIk42fDi0TSmnFMoXLy0Gqmm+ruBWBThloQz+zN7akgN7PWwxPC9TA9xP1Kox/ bUwOHfbmDflWsf/W/EaFC/YKT4Wu9pUtGGkKi86efuO8J5vY60vcnH8jh+gVMKSBmUvt PwaDGXXwxgWR7+fxmGSlH3ShU5ThWLDZv/NFOd4EzNnAq4nGa15KxrZjji6l/lXGVzwm Q1Qf6HjUJagEXBHtmPZ3fiXkkHB7wR7jrpKtOTSqz+IcVL84+4GyBvHGY2DqKy0xgZ2x tEUQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=MVURSqmuBGXCMnrpbVdkB9Zu8LTlBdok0ijPvmx3x2Q=; b=qdYe1qvGzIh35wPADt0cgZs1bVtLjApDCnVgtEqNFjJ4oOeCqm20EWsnDOzmXh73vd dSziRJRuG8fBxTbdblzR2W0sEgOVkSFYV49dxXePvUhDad41Z+LZPGOWeDa4uDSO2XCR +ebWVRwvrwmX1Bi0ysd1Zm4miNfCfqjWhxnnmYIOC/D8VslDZcpy1UCPKm6m75TwqNUZ ADxJV+NTuFhuMu0vNRBi3f6lAw0jJUpShLvt49slN7mgnHHSmyDTqJOXfw60anSNg+sJ IiWAThgWjJ+G+0jlrcHg7fdsdVaXwXRN/fXLYHchiVqui9pTMiDTmgHapWgcyEcEXiJ8 jgOw== 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 x10si45851524plo.422.2019.04.16.13.22.50; Tue, 16 Apr 2019 13:22: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 S1730828AbfDPUWt (ORCPT + 30 others); Tue, 16 Apr 2019 16:22:49 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:54037 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730472AbfDPUWs (ORCPT ); Tue, 16 Apr 2019 16:22:48 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue012 [212.227.15.129]) with ESMTPA (Nemesis) id 1MYLqs-1hKMVj2DQ2-00VROG; Tue, 16 Apr 2019 22:22:29 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Greg Kroah-Hartman , Andrew Donnellan , Felipe Balbi , Frederic Barrat , Frank Haverkamp , Kashyap Desai , Sumit Saxena , Shivasharan S , "James E.J. Bottomley" , "Martin K. Petersen" , Felipe Balbi , Jerry Zhang , Vincent Pelletier , Andrzej Pietrasiewicz , Shen Jing , linuxppc-dev@lists.ozlabs.org, megaraidlinux.pdl@broadcom.com, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org Subject: [PATCH v3 10/26] compat_ioctl: use correct compat_ptr() translation in drivers Date: Tue, 16 Apr 2019 22:19:48 +0200 Message-Id: <20190416202013.4034148-11-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:dhXxVwlF+OTv8zTau2mq8cW9se+5+L4XB4D+BXwtDLVtt1eHtvH 9j0eCYXXgpxChG2e+3m5sp1o66pwBmHIM2FHcEPi9zE0BZKkLHbZNmHnn2+GcU+w9KKJ0Xr +OSW2NH8h1S951PFymOn/9mrd2neAmTVkxmgkRDwiI2y7EQMG12TYsIUTnf0SUxFMAktcKM /O02KIxJdbN27u4CGMA4g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:p/lEhNyfi0M=:BGMO+DqJh9KBHQtwPEOwGx ZvFHFvMvfly9/nfku2neA5EJJ0wA/7lYo2R92uQbDZ4RSunLr4T3lNgvwy8J2miL4ONveNol0 NO0TBQCQ+Kv4Lr9VnORrI9XV8IR9huTtI9Kkz+kuzHZWlivbFJwQxgX7hGtYwV3fJxnY1rWn3 1UYFA/0oowmuOdzjvn1K8BEwz2lOGQz/TMc+yv5UuJQ2v3iaXL8fqpOg7oM/SGBngGL9Zq3QJ 76Lo3SUQuBgoBwW3vyukwEHw363Va2GXlPbbF4mPDzOGRpDBunS1ghS2gYU9ZjTbDlc6FHtDf XuZCgJ1WkglsDHhbegTdCIgzhRz9CY8MLOarplHlUkrqVjxKIo+EQDw3rlUWdxSIjutMjadMp Q5d+sYXmL5nxc41yjTr6IEy+FRb8M/gFRpiCrqHKh6lV7IF6OwfDFLuXN64Od+s/YCQ4yze1S 4NGTx3sJiDXUXsY0G7E+ne1X2DSfvtoF6PbZzOcWGUvYNKcz6GzPB9eoA4hgO5JXXgu8OP4GH 9mvOERN3xpBwk409vs3LKwMiNar3EdDF75tVcEQEzX8WPIJ+deJwS44rhZ4pSp8usbPjrGC8c EsfY+Ftfu9ngwxbRw5lLYuN8AsTEl/BSELPDew5KLKLNBkfVq54qhM3qs654jfrPJyWhnArQN FRh2ekxvl5xRzxrw9VCHRmLcdkyamf/BKexhZefiopdVuK7TmkF3IyUBtt1Tbrr4LAmGWj4Rv 60qC4WULwufY42ykZcHrTiyfzlUZFbScqwLLkA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org A handful of drivers all have a trivial wrapper around their ioctl handler, but don't call the compat_ptr() conversion function at the moment. In practice this does not matter, since none of them are used on the s390 architecture and for all other architectures, compat_ptr() does not do anything, but using the new compat_ptr_ioctl() helper makes it more correct in theory, and simplifies the code. Acked-by: Greg Kroah-Hartman Acked-by: Andrew Donnellan Acked-by: Felipe Balbi Signed-off-by: Arnd Bergmann --- drivers/misc/cxl/flash.c | 8 +------- drivers/misc/genwqe/card_dev.c | 23 +---------------------- drivers/scsi/megaraid/megaraid_mm.c | 28 +--------------------------- drivers/usb/gadget/function/f_fs.c | 12 +----------- 4 files changed, 4 insertions(+), 67 deletions(-) -- 2.20.0 diff --git a/drivers/misc/cxl/flash.c b/drivers/misc/cxl/flash.c index 4d6836f19489..cb9cca35a226 100644 --- a/drivers/misc/cxl/flash.c +++ b/drivers/misc/cxl/flash.c @@ -473,12 +473,6 @@ static long device_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return -EINVAL; } -static long device_compat_ioctl(struct file *file, unsigned int cmd, - unsigned long arg) -{ - return device_ioctl(file, cmd, arg); -} - static int device_close(struct inode *inode, struct file *file) { struct cxl *adapter = file->private_data; @@ -514,7 +508,7 @@ static const struct file_operations fops = { .owner = THIS_MODULE, .open = device_open, .unlocked_ioctl = device_ioctl, - .compat_ioctl = device_compat_ioctl, + .compat_ioctl = compat_ptr_ioctl, .release = device_close, }; diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c index 8c1b63a4337b..5de0796f2786 100644 --- a/drivers/misc/genwqe/card_dev.c +++ b/drivers/misc/genwqe/card_dev.c @@ -1221,34 +1221,13 @@ static long genwqe_ioctl(struct file *filp, unsigned int cmd, return rc; } -#if defined(CONFIG_COMPAT) -/** - * genwqe_compat_ioctl() - Compatibility ioctl - * - * Called whenever a 32-bit process running under a 64-bit kernel - * performs an ioctl on /dev/genwqe_card. - * - * @filp: file pointer. - * @cmd: command. - * @arg: user argument. - * Return: zero on success or negative number on failure. - */ -static long genwqe_compat_ioctl(struct file *filp, unsigned int cmd, - unsigned long arg) -{ - return genwqe_ioctl(filp, cmd, arg); -} -#endif /* defined(CONFIG_COMPAT) */ - static const struct file_operations genwqe_fops = { .owner = THIS_MODULE, .open = genwqe_open, .fasync = genwqe_fasync, .mmap = genwqe_mmap, .unlocked_ioctl = genwqe_ioctl, -#if defined(CONFIG_COMPAT) - .compat_ioctl = genwqe_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .release = genwqe_release, }; diff --git a/drivers/scsi/megaraid/megaraid_mm.c b/drivers/scsi/megaraid/megaraid_mm.c index 3ce837e4b24c..21ee5751c04e 100644 --- a/drivers/scsi/megaraid/megaraid_mm.c +++ b/drivers/scsi/megaraid/megaraid_mm.c @@ -45,10 +45,6 @@ static int mraid_mm_setup_dma_pools(mraid_mmadp_t *); static void mraid_mm_free_adp_resources(mraid_mmadp_t *); static void mraid_mm_teardown_dma_pools(mraid_mmadp_t *); -#ifdef CONFIG_COMPAT -static long mraid_mm_compat_ioctl(struct file *, unsigned int, unsigned long); -#endif - MODULE_AUTHOR("LSI Logic Corporation"); MODULE_DESCRIPTION("LSI Logic Management Module"); MODULE_LICENSE("GPL"); @@ -72,9 +68,7 @@ static wait_queue_head_t wait_q; static const struct file_operations lsi_fops = { .open = mraid_mm_open, .unlocked_ioctl = mraid_mm_unlocked_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = mraid_mm_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .owner = THIS_MODULE, .llseek = noop_llseek, }; @@ -228,7 +222,6 @@ mraid_mm_unlocked_ioctl(struct file *filep, unsigned int cmd, { int err; - /* inconsistent: mraid_mm_compat_ioctl doesn't take the BKL */ mutex_lock(&mraid_mm_mutex); err = mraid_mm_ioctl(filep, cmd, arg); mutex_unlock(&mraid_mm_mutex); @@ -1232,25 +1225,6 @@ mraid_mm_init(void) } -#ifdef CONFIG_COMPAT -/** - * mraid_mm_compat_ioctl - 32bit to 64bit ioctl conversion routine - * @filep : file operations pointer (ignored) - * @cmd : ioctl command - * @arg : user ioctl packet - */ -static long -mraid_mm_compat_ioctl(struct file *filep, unsigned int cmd, - unsigned long arg) -{ - int err; - - err = mraid_mm_ioctl(filep, cmd, arg); - - return err; -} -#endif - /** * mraid_mm_exit - Module exit point */ diff --git a/drivers/usb/gadget/function/f_fs.c b/drivers/usb/gadget/function/f_fs.c index 20413c276c61..addc210d198a 100644 --- a/drivers/usb/gadget/function/f_fs.c +++ b/drivers/usb/gadget/function/f_fs.c @@ -1347,14 +1347,6 @@ static long ffs_epfile_ioctl(struct file *file, unsigned code, return ret; } -#ifdef CONFIG_COMPAT -static long ffs_epfile_compat_ioctl(struct file *file, unsigned code, - unsigned long value) -{ - return ffs_epfile_ioctl(file, code, value); -} -#endif - static const struct file_operations ffs_epfile_operations = { .llseek = no_llseek, @@ -1363,9 +1355,7 @@ static const struct file_operations ffs_epfile_operations = { .read_iter = ffs_epfile_read_iter, .release = ffs_epfile_release, .unlocked_ioctl = ffs_epfile_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = ffs_epfile_compat_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; From patchwork Tue Apr 16 20:25:33 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162372 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661110jan; Tue, 16 Apr 2019 13:28:26 -0700 (PDT) X-Google-Smtp-Source: APXvYqzzgySMDgMxXvtttIE4j3UgyGPeFR7BeFwA4yUQlrTFeL3Ehn8hnMpjZE7HGHYrI/l6Sesb X-Received: by 2002:a17:902:7206:: with SMTP id ba6mr85519226plb.301.1555446506915; Tue, 16 Apr 2019 13:28:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446506; cv=none; d=google.com; s=arc-20160816; b=OzBpiAOr/NmaNJjr+XLcssS/BrKWCYrGfaFp7qAhFxHUwB3YjqrDKPwnhVnks61XrH Rep9Rms8I3Gz78Z3IgneZF9kSngHNlVWHB6glGkncLryCOKDRzADPQFt6j0+x6c1BXJp eDIOfdbcUzHnjCpDiW5sQWLZbb4Vl8/Q7+3wFyOMWHWBJmLQfl4QBvt5gttnnvngvHW0 m8s8qHmeV8IxIY0QeUQIdPA+3WaQ9Hs4TwaFSyo9HVrr93ZSiCdTeit5Cpu8MS4sf0FU MtARMjJBkyvstfG/cpOglOGDeaBY8AVc1BeevticO5cAmhSQpXs1PHRanJ67taq3xKYR /aLw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=TPSHwZxn1IJVjvej3p9yJ7xqUlYIBZ1z7YKUrf593is=; b=PzmCTYIWm+8vBttPXvQUQ8MGp/howkIYoamdSSbcDtqhgkqi1s/O2s7UA170/4in2T DywsURDDqClJrqyIVlIEOqa5BZOUQWgA7uLrwFSnGcp7DH9w0wbuTsNV3+DZokQg1b0V 8HpaiAo7Aab+73BbY6SOBb//p4lGZIpFfgX18W/bCNVL8gJg14DvSGzJMsgPLynO3FH/ CrgfjLYbVmHdWZ3tsSLRLHvm3qsMsyiC/1XYb2pLvZJA3B644BZ2jAPxQXK0QgnJG4uU 5PYfKB57FVs0VwC8IOeiLqFy5CzE5V7xPVkgmGEHvL6GLKlCMNJopxm6t0L37ZnVrUDW qN3w== 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 q18si45912765pls.319.2019.04.16.13.28.26; Tue, 16 Apr 2019 13:28:26 -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 S1730747AbfDPU2Z (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:25 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:45625 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729301AbfDPU2W (ORCPT ); Tue, 16 Apr 2019 16:28:22 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MV6G0-1hNgEM3EgQ-00SATK; Tue, 16 Apr 2019 22:27:08 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Jason Gunthorpe , Daniel Vetter , Mauro Carvalho Chehab , Greg Kroah-Hartman , David Sterba , Darren Hart , Jonathan Cameron , Bjorn Andersson , devel@driverdev.osuosl.org, qat-linux@intel.com, linux-crypto@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, amd-gfx@lists.freedesktop.org, linux-input@vger.kernel.org, linux-iio@vger.kernel.org, linux-rdma@vger.kernel.org, linux-nvdimm@lists.01.org, linux-nvme@lists.infradead.org, linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org, linux-remoteproc@vger.kernel.org, sparclinux@vger.kernel.org, linux-scsi@vger.kernel.org, linux-usb@vger.kernel.org, linux-btrfs@vger.kernel.org, ceph-devel@vger.kernel.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 12/26] compat_ioctl: move more drivers to compat_ptr_ioctl Date: Tue, 16 Apr 2019 22:25:33 +0200 Message-Id: <20190416202701.127745-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:I0ntVofgIZKGDclnxZ80rUlhqXRnwCyJ9jfieMXwclGrzlJhSWk OKsGtgTemIooP2uxwjLrqce31TjiCM+NZZDAiHRSRkbSCDIhOasKLnejUnBtDmBZLdMze8D KtI5pIUv85Ma7qqZ79FGs7jZWk9ZR8GHb8oMvlf9wqE0dfMEW2In79FEpbTVhmQ/Mu1r5DS 6N8yl7VusBlVp4Sbay5HQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:B+LStx+rZMQ=:xApjNKhdi1PiaqHC5cM6ps ARbxWw0ZsBv37ABCsriMMubm0zKmPeUR3kolGlGVqQ6D6DHq+wtFSX1jZhotLB9MUrE79EiBG rBQqFEVEh33wWnHxTN2+FZoe+/9Z4rMezYsywpbx/7xIyVeDJ6j2KpLFDCLLyR4GNNfRW/OTd 4nc8X1lEGKm588JH3+ozlglCO2PUldHircrw63OUjoePwC9PMC631NLBMmcM2NyT1Xpgyxncs IxvH7H/YoYsEVzKR/nEjTgRq2zxVJCuP6xWSFp1QmirMp3y9YXW1EqPOL9By/xPdekntG1IXJ Ox9qPzjf+cGJtZoLcIrckKeH9ExP+d2r58eAt02lfD3s4WnqsWiDrqR397mvYNUokl1SWcyZC P/52sGIyEOzTYD8Q+/SoO+3RnqdlS6wUQzTn69DzKYJUngwIaK1mompwf+aPpt9AfKsMiMt3Y LZeK2PBpkPzhY1Zw6rn1932leEjf+WX2lFLl8JoSigUNLcHrhpVuIOxuZwSQAhr3vCUOaFQq/ 8fHq8VuSeFGCUpiXUxvNPH4xog0kkvd8BfyHtzOfIeHxSlJtF/MRF3l4a6Kym5jC83U8Z7RZx HSflp0aFLC7vrTzgLVI9I/sw5CsYX4GCcK+RNwEcQn9c6ekQ/GsKEwzm/APecGtdEvEU3/hTl cMA58xS7Ybje6+SjwRaCDSbGABox7uG/F4xrGka498yuvAG62N6+Iq7l/VDFP3EX8HEmaA0Z9 5SU4ChC7kXQtp6moxDFTXEx1RxQ8b/pjYACU8w== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The .ioctl and .compat_ioctl file operations have the same prototype so they can both point to the same function, which works great almost all the time when all the commands are compatible. One exception is the s390 architecture, where a compat pointer is only 31 bit wide, and converting it into a 64-bit pointer requires calling compat_ptr(). Most drivers here will ever run in s390, but since we now have a generic helper for it, it's easy enough to use it consistently. I double-checked all these drivers to ensure that all ioctl arguments are used as pointers or are ignored, but are not interpreted as integer values. Acked-by: Jason Gunthorpe Acked-by: Daniel Vetter Acked-by: Mauro Carvalho Chehab Acked-by: Greg Kroah-Hartman Acked-by: David Sterba Acked-by: Darren Hart (VMware) Acked-by: Jonathan Cameron Acked-by: Bjorn Andersson Signed-off-by: Arnd Bergmann --- drivers/android/binder.c | 2 +- drivers/crypto/qat/qat_common/adf_ctl_drv.c | 2 +- drivers/dma-buf/dma-buf.c | 4 +--- drivers/dma-buf/sw_sync.c | 2 +- drivers/dma-buf/sync_file.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 2 +- drivers/hid/hidraw.c | 4 +--- drivers/iio/industrialio-core.c | 2 +- drivers/infiniband/core/uverbs_main.c | 4 ++-- drivers/media/rc/lirc_dev.c | 4 +--- drivers/mfd/cros_ec_dev.c | 4 +--- drivers/misc/vmw_vmci/vmci_host.c | 2 +- drivers/nvdimm/bus.c | 4 ++-- drivers/nvme/host/core.c | 2 +- drivers/pci/switch/switchtec.c | 2 +- drivers/platform/x86/wmi.c | 2 +- drivers/rpmsg/rpmsg_char.c | 4 ++-- drivers/sbus/char/display7seg.c | 2 +- drivers/sbus/char/envctrl.c | 4 +--- drivers/scsi/3w-xxxx.c | 4 +--- drivers/scsi/cxlflash/main.c | 2 +- drivers/scsi/esas2r/esas2r_main.c | 2 +- drivers/scsi/pmcraid.c | 4 +--- drivers/staging/android/ion/ion.c | 4 +--- drivers/staging/vme/devices/vme_user.c | 2 +- drivers/tee/tee_core.c | 2 +- drivers/usb/class/cdc-wdm.c | 2 +- drivers/usb/class/usbtmc.c | 4 +--- drivers/virt/fsl_hypervisor.c | 2 +- fs/btrfs/super.c | 2 +- fs/ceph/dir.c | 2 +- fs/ceph/file.c | 2 +- fs/fuse/dev.c | 2 +- fs/notify/fanotify/fanotify_user.c | 2 +- fs/userfaultfd.c | 2 +- net/rfkill/core.c | 2 +- 36 files changed, 39 insertions(+), 57 deletions(-) -- 2.20.0 diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 4b9c7ca492e6..48109ade7234 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -5998,7 +5998,7 @@ const struct file_operations binder_fops = { .owner = THIS_MODULE, .poll = binder_poll, .unlocked_ioctl = binder_ioctl, - .compat_ioctl = binder_ioctl, + .compat_ioctl = compat_ptr_ioctl, .mmap = binder_mmap, .open = binder_open, .flush = binder_flush, diff --git a/drivers/crypto/qat/qat_common/adf_ctl_drv.c b/drivers/crypto/qat/qat_common/adf_ctl_drv.c index abc7a7f64d64..ef0e482ee04f 100644 --- a/drivers/crypto/qat/qat_common/adf_ctl_drv.c +++ b/drivers/crypto/qat/qat_common/adf_ctl_drv.c @@ -68,7 +68,7 @@ static long adf_ctl_ioctl(struct file *fp, unsigned int cmd, unsigned long arg); static const struct file_operations adf_ctl_ops = { .owner = THIS_MODULE, .unlocked_ioctl = adf_ctl_ioctl, - .compat_ioctl = adf_ctl_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; struct adf_ctl_drv_info { diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 7c858020d14b..0cb336fe6324 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -325,9 +325,7 @@ static const struct file_operations dma_buf_fops = { .llseek = dma_buf_llseek, .poll = dma_buf_poll, .unlocked_ioctl = dma_buf_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = dma_buf_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; /* diff --git a/drivers/dma-buf/sw_sync.c b/drivers/dma-buf/sw_sync.c index 32dcf7b4c935..411de6a8a0ad 100644 --- a/drivers/dma-buf/sw_sync.c +++ b/drivers/dma-buf/sw_sync.c @@ -419,5 +419,5 @@ const struct file_operations sw_sync_debugfs_fops = { .open = sw_sync_debugfs_open, .release = sw_sync_debugfs_release, .unlocked_ioctl = sw_sync_ioctl, - .compat_ioctl = sw_sync_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; diff --git a/drivers/dma-buf/sync_file.c b/drivers/dma-buf/sync_file.c index 4f6305ca52c8..0949f91eb85f 100644 --- a/drivers/dma-buf/sync_file.c +++ b/drivers/dma-buf/sync_file.c @@ -488,5 +488,5 @@ static const struct file_operations sync_file_fops = { .release = sync_file_release, .poll = sync_file_poll, .unlocked_ioctl = sync_file_ioctl, - .compat_ioctl = sync_file_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index 083bd8114db1..5d6ac7885aa7 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -49,7 +49,7 @@ static const char kfd_dev_name[] = "kfd"; static const struct file_operations kfd_fops = { .owner = THIS_MODULE, .unlocked_ioctl = kfd_ioctl, - .compat_ioctl = kfd_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = kfd_open, .mmap = kfd_mmap, }; diff --git a/drivers/hid/hidraw.c b/drivers/hid/hidraw.c index 9fc51eff1079..e7284d38b66d 100644 --- a/drivers/hid/hidraw.c +++ b/drivers/hid/hidraw.c @@ -476,9 +476,7 @@ static const struct file_operations hidraw_ops = { .release = hidraw_release, .unlocked_ioctl = hidraw_ioctl, .fasync = hidraw_fasync, -#ifdef CONFIG_COMPAT - .compat_ioctl = hidraw_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c index 4700fd5d8c90..eed1bea257b4 100644 --- a/drivers/iio/industrialio-core.c +++ b/drivers/iio/industrialio-core.c @@ -1635,7 +1635,7 @@ static const struct file_operations iio_buffer_fileops = { .owner = THIS_MODULE, .llseek = noop_llseek, .unlocked_ioctl = iio_ioctl, - .compat_ioctl = iio_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static int iio_check_unique_scan_index(struct iio_dev *indio_dev) diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index 70b7d80431a9..ac4321d7c800 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c @@ -1120,7 +1120,7 @@ static const struct file_operations uverbs_fops = { .release = ib_uverbs_close, .llseek = no_llseek, .unlocked_ioctl = ib_uverbs_ioctl, - .compat_ioctl = ib_uverbs_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static const struct file_operations uverbs_mmap_fops = { @@ -1131,7 +1131,7 @@ static const struct file_operations uverbs_mmap_fops = { .release = ib_uverbs_close, .llseek = no_llseek, .unlocked_ioctl = ib_uverbs_ioctl, - .compat_ioctl = ib_uverbs_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static struct ib_client uverbs_client = { diff --git a/drivers/media/rc/lirc_dev.c b/drivers/media/rc/lirc_dev.c index f862f1b7f996..9ccc7e9cbc8e 100644 --- a/drivers/media/rc/lirc_dev.c +++ b/drivers/media/rc/lirc_dev.c @@ -730,9 +730,7 @@ static const struct file_operations lirc_fops = { .owner = THIS_MODULE, .write = ir_lirc_transmit_ir, .unlocked_ioctl = ir_lirc_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = ir_lirc_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .read = ir_lirc_read, .poll = ir_lirc_poll, .open = ir_lirc_open, diff --git a/drivers/mfd/cros_ec_dev.c b/drivers/mfd/cros_ec_dev.c index d275deaecb12..4a602a40d75c 100644 --- a/drivers/mfd/cros_ec_dev.c +++ b/drivers/mfd/cros_ec_dev.c @@ -251,9 +251,7 @@ static const struct file_operations fops = { .release = ec_device_release, .read = ec_device_read, .unlocked_ioctl = ec_device_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = ec_device_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static void cros_ec_class_release(struct device *dev) diff --git a/drivers/misc/vmw_vmci/vmci_host.c b/drivers/misc/vmw_vmci/vmci_host.c index 997f92543dd4..5bb406dabe85 100644 --- a/drivers/misc/vmw_vmci/vmci_host.c +++ b/drivers/misc/vmw_vmci/vmci_host.c @@ -969,7 +969,7 @@ static const struct file_operations vmuser_fops = { .release = vmci_host_close, .poll = vmci_host_poll, .unlocked_ioctl = vmci_host_unlocked_ioctl, - .compat_ioctl = vmci_host_unlocked_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static struct miscdevice vmci_host_miscdev = { diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c index 7bbff0af29b2..065ebd584482 100644 --- a/drivers/nvdimm/bus.c +++ b/drivers/nvdimm/bus.c @@ -1167,7 +1167,7 @@ static const struct file_operations nvdimm_bus_fops = { .owner = THIS_MODULE, .open = nd_open, .unlocked_ioctl = nd_ioctl, - .compat_ioctl = nd_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; @@ -1175,7 +1175,7 @@ static const struct file_operations nvdimm_fops = { .owner = THIS_MODULE, .open = nd_open, .unlocked_ioctl = nvdimm_ioctl, - .compat_ioctl = nvdimm_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 2c43e12b70af..560929bee5ce 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -2739,7 +2739,7 @@ static const struct file_operations nvme_dev_fops = { .owner = THIS_MODULE, .open = nvme_dev_open, .unlocked_ioctl = nvme_dev_ioctl, - .compat_ioctl = nvme_dev_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static ssize_t nvme_sysfs_reset(struct device *dev, diff --git a/drivers/pci/switch/switchtec.c b/drivers/pci/switch/switchtec.c index e22766c79fe9..3a54b4b616e2 100644 --- a/drivers/pci/switch/switchtec.c +++ b/drivers/pci/switch/switchtec.c @@ -1006,7 +1006,7 @@ static const struct file_operations switchtec_fops = { .read = switchtec_dev_read, .poll = switchtec_dev_poll, .unlocked_ioctl = switchtec_dev_ioctl, - .compat_ioctl = switchtec_dev_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static void link_event_work(struct work_struct *work) diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c index 7b26b6ccf1a0..dded9cef42f4 100644 --- a/drivers/platform/x86/wmi.c +++ b/drivers/platform/x86/wmi.c @@ -889,7 +889,7 @@ static const struct file_operations wmi_fops = { .read = wmi_char_read, .open = wmi_char_open, .unlocked_ioctl = wmi_ioctl, - .compat_ioctl = wmi_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static int wmi_dev_probe(struct device *dev) diff --git a/drivers/rpmsg/rpmsg_char.c b/drivers/rpmsg/rpmsg_char.c index eea5ebbb5119..507bfe163883 100644 --- a/drivers/rpmsg/rpmsg_char.c +++ b/drivers/rpmsg/rpmsg_char.c @@ -290,7 +290,7 @@ static const struct file_operations rpmsg_eptdev_fops = { .write_iter = rpmsg_eptdev_write_iter, .poll = rpmsg_eptdev_poll, .unlocked_ioctl = rpmsg_eptdev_ioctl, - .compat_ioctl = rpmsg_eptdev_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static ssize_t name_show(struct device *dev, struct device_attribute *attr, @@ -451,7 +451,7 @@ static const struct file_operations rpmsg_ctrldev_fops = { .open = rpmsg_ctrldev_open, .release = rpmsg_ctrldev_release, .unlocked_ioctl = rpmsg_ctrldev_ioctl, - .compat_ioctl = rpmsg_ctrldev_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static void rpmsg_ctrldev_release_device(struct device *dev) diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c index a36e4cf1841d..c9f60656f54d 100644 --- a/drivers/sbus/char/display7seg.c +++ b/drivers/sbus/char/display7seg.c @@ -155,7 +155,7 @@ static long d7s_ioctl(struct file *file, unsigned int cmd, unsigned long arg) static const struct file_operations d7s_fops = { .owner = THIS_MODULE, .unlocked_ioctl = d7s_ioctl, - .compat_ioctl = d7s_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = d7s_open, .release = d7s_release, .llseek = noop_llseek, diff --git a/drivers/sbus/char/envctrl.c b/drivers/sbus/char/envctrl.c index 1a6e7224017c..dd2dfa85fc68 100644 --- a/drivers/sbus/char/envctrl.c +++ b/drivers/sbus/char/envctrl.c @@ -714,9 +714,7 @@ static const struct file_operations envctrl_fops = { .owner = THIS_MODULE, .read = envctrl_read, .unlocked_ioctl = envctrl_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = envctrl_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = envctrl_open, .release = envctrl_release, .llseek = noop_llseek, diff --git a/drivers/scsi/3w-xxxx.c b/drivers/scsi/3w-xxxx.c index 2b1e0d503020..fb6444d0409c 100644 --- a/drivers/scsi/3w-xxxx.c +++ b/drivers/scsi/3w-xxxx.c @@ -1049,9 +1049,7 @@ static int tw_chrdev_open(struct inode *inode, struct file *file) static const struct file_operations tw_fops = { .owner = THIS_MODULE, .unlocked_ioctl = tw_chrdev_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = tw_chrdev_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .open = tw_chrdev_open, .release = NULL, .llseek = noop_llseek, diff --git a/drivers/scsi/cxlflash/main.c b/drivers/scsi/cxlflash/main.c index 7096810fd222..e13d5de1d76e 100644 --- a/drivers/scsi/cxlflash/main.c +++ b/drivers/scsi/cxlflash/main.c @@ -3589,7 +3589,7 @@ static const struct file_operations cxlflash_chr_fops = { .owner = THIS_MODULE, .open = cxlflash_chr_open, .unlocked_ioctl = cxlflash_chr_ioctl, - .compat_ioctl = cxlflash_chr_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; /** diff --git a/drivers/scsi/esas2r/esas2r_main.c b/drivers/scsi/esas2r/esas2r_main.c index fdbda5c05aa0..80c5a235d193 100644 --- a/drivers/scsi/esas2r/esas2r_main.c +++ b/drivers/scsi/esas2r/esas2r_main.c @@ -613,7 +613,7 @@ static int __init esas2r_init(void) /* Handle ioctl calls to "/proc/scsi/esas2r/ATTOnode" */ static const struct file_operations esas2r_proc_fops = { - .compat_ioctl = esas2r_proc_ioctl, + .compat_ioctl = compat_ptr_ioctl, .unlocked_ioctl = esas2r_proc_ioctl, }; diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c index e338d7a4f571..c0a1a1218c56 100644 --- a/drivers/scsi/pmcraid.c +++ b/drivers/scsi/pmcraid.c @@ -3988,9 +3988,7 @@ static const struct file_operations pmcraid_fops = { .open = pmcraid_chr_open, .fasync = pmcraid_chr_fasync, .unlocked_ioctl = pmcraid_chr_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = pmcraid_chr_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/staging/android/ion/ion.c b/drivers/staging/android/ion/ion.c index 92c2914239e3..1663c163edca 100644 --- a/drivers/staging/android/ion/ion.c +++ b/drivers/staging/android/ion/ion.c @@ -567,9 +567,7 @@ static long ion_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) static const struct file_operations ion_fops = { .owner = THIS_MODULE, .unlocked_ioctl = ion_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = ion_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, }; static int debug_shrink_set(void *data, u64 val) diff --git a/drivers/staging/vme/devices/vme_user.c b/drivers/staging/vme/devices/vme_user.c index 6a33aaa1a49f..fd0ea4dbcb91 100644 --- a/drivers/staging/vme/devices/vme_user.c +++ b/drivers/staging/vme/devices/vme_user.c @@ -494,7 +494,7 @@ static const struct file_operations vme_user_fops = { .write = vme_user_write, .llseek = vme_user_llseek, .unlocked_ioctl = vme_user_unlocked_ioctl, - .compat_ioctl = vme_user_unlocked_ioctl, + .compat_ioctl = compat_ptr_ioctl, .mmap = vme_user_mmap, }; diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c index 17c64fccbb10..eb97acf09868 100644 --- a/drivers/tee/tee_core.c +++ b/drivers/tee/tee_core.c @@ -684,7 +684,7 @@ static const struct file_operations tee_fops = { .open = tee_open, .release = tee_release, .unlocked_ioctl = tee_ioctl, - .compat_ioctl = tee_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static void tee_release_device(struct device *dev) diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c index 9e9caff905d5..d48c032580d0 100644 --- a/drivers/usb/class/cdc-wdm.c +++ b/drivers/usb/class/cdc-wdm.c @@ -724,7 +724,7 @@ static const struct file_operations wdm_fops = { .release = wdm_release, .poll = wdm_poll, .unlocked_ioctl = wdm_ioctl, - .compat_ioctl = wdm_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c index 4942122b2346..bbd0308b13f5 100644 --- a/drivers/usb/class/usbtmc.c +++ b/drivers/usb/class/usbtmc.c @@ -2220,9 +2220,7 @@ static const struct file_operations fops = { .release = usbtmc_release, .flush = usbtmc_flush, .unlocked_ioctl = usbtmc_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = usbtmc_ioctl, -#endif + .compat_ioctl = compat_ptr_ioctl, .fasync = usbtmc_fasync, .poll = usbtmc_poll, .llseek = default_llseek, diff --git a/drivers/virt/fsl_hypervisor.c b/drivers/virt/fsl_hypervisor.c index 8ba726e600e9..fbf02bf60f62 100644 --- a/drivers/virt/fsl_hypervisor.c +++ b/drivers/virt/fsl_hypervisor.c @@ -703,7 +703,7 @@ static const struct file_operations fsl_hv_fops = { .poll = fsl_hv_poll, .read = fsl_hv_read, .unlocked_ioctl = fsl_hv_ioctl, - .compat_ioctl = fsl_hv_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; static struct miscdevice fsl_hv_misc_dev = { diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 120e4340792a..162ea4b6b417 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -2307,7 +2307,7 @@ static const struct super_operations btrfs_super_ops = { static const struct file_operations btrfs_ctl_fops = { .open = btrfs_control_open, .unlocked_ioctl = btrfs_control_ioctl, - .compat_ioctl = btrfs_control_ioctl, + .compat_ioctl = compat_ptr_ioctl, .owner = THIS_MODULE, .llseek = noop_llseek, }; diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c index 7c060cb22aa3..a493b957713f 100644 --- a/fs/ceph/dir.c +++ b/fs/ceph/dir.c @@ -1785,7 +1785,7 @@ const struct file_operations ceph_dir_fops = { .open = ceph_open, .release = ceph_release, .unlocked_ioctl = ceph_ioctl, - .compat_ioctl = ceph_ioctl, + .compat_ioctl = compat_ptr_ioctl, .fsync = ceph_fsync, .lock = ceph_lock, .flock = ceph_flock, diff --git a/fs/ceph/file.c b/fs/ceph/file.c index 9f53c3d99304..9b5fe7eee3c1 100644 --- a/fs/ceph/file.c +++ b/fs/ceph/file.c @@ -2112,7 +2112,7 @@ const struct file_operations ceph_file_fops = { .splice_read = generic_file_splice_read, .splice_write = iter_file_splice_write, .unlocked_ioctl = ceph_ioctl, - .compat_ioctl = ceph_ioctl, + .compat_ioctl = compat_ptr_ioctl, .fallocate = ceph_fallocate, .copy_file_range = ceph_copy_file_range, }; diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 9971a35cf1ef..dcdb26068b71 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -2354,7 +2354,7 @@ const struct file_operations fuse_dev_operations = { .release = fuse_dev_release, .fasync = fuse_dev_fasync, .unlocked_ioctl = fuse_dev_ioctl, - .compat_ioctl = fuse_dev_ioctl, + .compat_ioctl = compat_ptr_ioctl, }; EXPORT_SYMBOL_GPL(fuse_dev_operations); diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c index a90bb19dcfa2..a55aa029a308 100644 --- a/fs/notify/fanotify/fanotify_user.c +++ b/fs/notify/fanotify/fanotify_user.c @@ -523,7 +523,7 @@ static const struct file_operations fanotify_fops = { .fasync = NULL, .release = fanotify_release, .unlocked_ioctl = fanotify_ioctl, - .compat_ioctl = fanotify_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index 89800fc7dc9d..f93dcf8c996f 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -1901,7 +1901,7 @@ static const struct file_operations userfaultfd_fops = { .poll = userfaultfd_poll, .read = userfaultfd_read, .unlocked_ioctl = userfaultfd_ioctl, - .compat_ioctl = userfaultfd_ioctl, + .compat_ioctl = compat_ptr_ioctl, .llseek = noop_llseek, }; diff --git a/net/rfkill/core.c b/net/rfkill/core.c index abca57040f37..3b2f6ea44397 100644 --- a/net/rfkill/core.c +++ b/net/rfkill/core.c @@ -1323,7 +1323,7 @@ static const struct file_operations rfkill_fops = { .release = rfkill_fop_release, #ifdef CONFIG_RFKILL_INPUT .unlocked_ioctl = rfkill_fop_ioctl, - .compat_ioctl = rfkill_fop_ioctl, + .compat_ioctl = compat_ptr_ioctl, #endif .llseek = no_llseek, }; From patchwork Tue Apr 16 20:25:34 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162370 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4660868jan; Tue, 16 Apr 2019 13:28:09 -0700 (PDT) X-Google-Smtp-Source: APXvYqyalbkSK8RN/8X641i9tQyHj/MOLr08Oqa7QxERbredCfYWnT4qyiA+eEGrr6gSI2CORNja X-Received: by 2002:aa7:920b:: with SMTP id 11mr84900235pfo.3.1555446489670; Tue, 16 Apr 2019 13:28:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446489; cv=none; d=google.com; s=arc-20160816; b=MCC+KE+DmfmjDF11Hj78L3W9un7m5d+W/D+ZQhGMGXTlIQxgXpggdEb46v6hOkGa/Y buSIJZ7B2JjggzkTjE1ssaIXwA818rJTfN3uagnkISjLTCC5S7upl7LdT2XqpHhMBdje t2SxwEJBlv8Z9AUtoS7X3PMGzsHAK2exHtczjxvlx7VoxkoKvRWqthmFAmW0IIUUVIS4 zqi/17qUtwea+kaDNRlCCLoMrcU6e0luxrelLtRurrJzvcAncS0Cu67JRUyeaOgp5dNC joUku12JdhGMBudpXLmP5LbnzEccUHL+LvRqTLmoG/yd/KnYRhGOwqG79QSocDZ6lU4z y3MA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=2s5ZoORdTfH+/1D4zyuS+5iA6jfjL42YlceE9FOvV5E=; b=YuB+cQ4DKO4gmgtZvQwMuY8KrzhYU4I+/vt+Z7dXVD5+wNId854HYDXmau7S93QxLb O9xQY8mJAwepoWPcZsMSPCcoOe0d+xLDbKmKhU7sgs8gE8yk6ckMVSmXuMW1L7Qxsngg usYZdNLj9NuDWeJK0UrmCNg0SUGdxVw9MCEVHEnPjoMkhrJ16vQRrlYnAiMMwx2pgBSQ aZWfui+pnX4GckbIolkwpiODGQHbk6R9QQYabOiOdo1cXd7NRMPX7+HAbB9/sz8DOWKT Gg7Wmvjo0S+HrSOCS6jeR2dTH85k5uOwaEVTsqKVNpe1ahq09jsnwK4nmxQPJyIIu1is x3Sg== 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 c1si50999667pla.240.2019.04.16.13.28.09; Tue, 16 Apr 2019 13:28:09 -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 S1730600AbfDPU2I (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:08 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:57863 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730493AbfDPU2F (ORCPT ); Tue, 16 Apr 2019 16:28:05 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MKsax-1hZX7r1BHB-00LGqP; Tue, 16 Apr 2019 22:27:26 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , "David S. Miller" , Martin Schwidefsky , Heiko Carstens , Willem Riede , "James E.J. Bottomley" , "Martin K. Petersen" , =?utf-8?q?Kai_M?= =?utf-8?q?=C3=A4kisara?= , linux-ide@vger.kernel.org, linux-s390@vger.kernel.org, osst-users@lists.sourceforge.net, linux-scsi@vger.kernel.org Subject: [PATCH v3 13/26] compat_ioctl: move tape handling into drivers Date: Tue, 16 Apr 2019 22:25:34 +0200 Message-Id: <20190416202701.127745-2-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:uGA9JVjERZHckDXZfe6dv/gsaiwdsacr9kaxbbZkc2lMUR1Gqkr I2FP2YOQoPg5wZvz6FDkx4gC6HWKIkrJBOZeh019kIxqUVbkcJlgftL2Dc178QpZHaz5/os oWIlgALoDzSU/7/9Z6Syj2QhpEREM4yArkgfPtrARcyWGOgnd7xCAb1YTwG2gAJA6GoRd75 B56wVDnSehWRczYUXgQ9w== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:moCZP5hEKbE=:xKnRvMSBKgxW4InLtkK/2E R9GjOWi7bws4htjbXa4M/AbT3dPrq7XFRNamZzEe7UaYa7SAsjiddipcSQ/P2UFSA8/O44vR5 eqMtgArkW1MtV6oZmVDy3+wlcj9QRbfcBF1wp7AlVAovf73izFCN83u4vLw4SEGMNVNj3rxw0 D1DkpUPf99z94sINszpkxXOvF+NvcNDTvObMOBM5D6C4dQ4u+g/1jU0kUE3O371JNaj48pjUa 5Lexyh94817Sz0v2E/aKzWuz1Eoye6HlRhBLDcX6dCo0UeB9j+cuaPzDLa3qRwGWCYrzJmkZg C9O3w6rfQ8khsp6ngpIGsnbYXUqIBP0EjfFpajGjwX8EyxSMJlYLa9YQ0r4Ki3q1H6Sguo0rp bSKkSsUpH1JWikCgJid8AKzT56u/TYauBvZWT8mYJ8/WuOh2jEgW/EWOt8aSGsJgmPsCPoANQ VUauhachgp+N0B5iAxmg8K0u3qbVuOdJrkyN1L3ttP2WPsWlS/X2hvf7PD2n5x5c0NkWPIumc q9xBHOg8V44FlMmpyFmUCkBqb7SgHzw7V+KNJO1q8Dfw6KHNIwnuumAau1UCgnPxcPeS2OgzC BBqQRUXuvCmBIEoB4s/k9aKHGdzxtN4cjcpgWwMDQYAlB3VYsin77Id/iwO0tACL+cKawgbl0 TbwhVfQJ3E3mM9qAfZfLFRqW2flzScfj8JYQuvW0sDouzlABe5tcRZQLW1W5SpLOylLWywMG7 nqiL2NGby6E84B3Aa+mDKzJQ+RAtccCly4hEOQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org MTIOCPOS and MTIOCGET are incompatible between 32-bit and 64-bit user space, and traditionally have been translated in fs/compat_ioctl.c. To get rid of that translation handler, move a corresponding implementation into each of the four drivers implementing those commands. The interesting part of that is now in a new linux/mtio.h header that wraps the existing uapi/linux/mtio.h header and provides an abstraction to let drivers handle both cases easily. Signed-off-by: Arnd Bergmann --- drivers/ide/ide-tape.c | 31 ++++++++++++---- drivers/s390/char/tape_char.c | 41 ++++++++------------ drivers/scsi/osst.c | 34 ++++++++++------- drivers/scsi/st.c | 35 +++++++++++------- fs/compat_ioctl.c | 70 ----------------------------------- include/linux/mtio.h | 58 +++++++++++++++++++++++++++++ 6 files changed, 137 insertions(+), 132 deletions(-) create mode 100644 include/linux/mtio.h -- 2.20.0 diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index db1a65f4b490..54560ae5c054 100644 --- a/drivers/ide/ide-tape.c +++ b/drivers/ide/ide-tape.c @@ -19,6 +19,7 @@ #define IDETAPE_VERSION "1.20" +#include #include #include #include @@ -1368,7 +1369,7 @@ static int idetape_mtioctop(ide_drive_t *drive, short mt_op, int mt_count) * ide-tape ioctls are supported on both interfaces. */ static long do_idetape_chrdev_ioctl(struct file *file, - unsigned int cmd, unsigned long arg) + unsigned int cmd, unsigned long arg, bool compat) { struct ide_tape_obj *tape = file->private_data; ide_drive_t *drive = tape->drive; @@ -1407,14 +1408,10 @@ static long do_idetape_chrdev_ioctl(struct file *file, if (tape->drv_write_prot) mtget.mt_gstat |= GMT_WR_PROT(0xffffffff); - if (copy_to_user(argp, &mtget, sizeof(struct mtget))) - return -EFAULT; - return 0; + return put_user_mtget(argp, &mtget, compat); case MTIOCPOS: mtpos.mt_blkno = position / tape->user_bs_factor - block_offset; - if (copy_to_user(argp, &mtpos, sizeof(struct mtpos))) - return -EFAULT; - return 0; + return put_user_mtpos(argp, &mtpos, compat); default: if (tape->chrdev_dir == IDETAPE_DIR_READ) ide_tape_discard_merge_buffer(drive, 1); @@ -1427,7 +1424,23 @@ static long idetape_chrdev_ioctl(struct file *file, { long ret; mutex_lock(&ide_tape_mutex); - ret = do_idetape_chrdev_ioctl(file, cmd, arg); + ret = do_idetape_chrdev_ioctl(file, cmd, arg, false); + mutex_unlock(&ide_tape_mutex); + return ret; +} + +static long idetape_chrdev_compat_ioctl(struct file *file, + unsigned int cmd, unsigned long arg) +{ + long ret; + + if (cmd == MTIOCPOS32) + cmd = MTIOCPOS; + else if (cmd == MTIOCGET32) + cmd = MTIOCGET; + + mutex_lock(&ide_tape_mutex); + ret = do_idetape_chrdev_ioctl(file, cmd, arg, true); mutex_unlock(&ide_tape_mutex); return ret; } @@ -1886,6 +1899,8 @@ static const struct file_operations idetape_fops = { .read = idetape_chrdev_read, .write = idetape_chrdev_write, .unlocked_ioctl = idetape_chrdev_ioctl, + .compat_ioctl = IS_ENABLED(CONFIG_COMPAT) ? + idetape_chrdev_compat_ioctl : NULL, .open = idetape_chrdev_open, .release = idetape_chrdev_release, .llseek = noop_llseek, diff --git a/drivers/s390/char/tape_char.c b/drivers/s390/char/tape_char.c index fc206c9d1c56..522ca9b836e3 100644 --- a/drivers/s390/char/tape_char.c +++ b/drivers/s390/char/tape_char.c @@ -341,14 +341,14 @@ tapechar_release(struct inode *inode, struct file *filp) */ static int __tapechar_ioctl(struct tape_device *device, - unsigned int no, unsigned long data) + unsigned int no, void __user *data, bool compat) { int rc; if (no == MTIOCTOP) { struct mtop op; - if (copy_from_user(&op, (char __user *) data, sizeof(op)) != 0) + if (copy_from_user(&op, data, sizeof(op)) != 0) return -EFAULT; if (op.mt_count < 0) return -EINVAL; @@ -392,9 +392,7 @@ __tapechar_ioctl(struct tape_device *device, if (rc < 0) return rc; pos.mt_blkno = rc; - if (copy_to_user((char __user *) data, &pos, sizeof(pos)) != 0) - return -EFAULT; - return 0; + return put_user_mtpos(data, &pos, compat); } if (no == MTIOCGET) { /* MTIOCGET: query the tape drive status. */ @@ -424,15 +422,12 @@ __tapechar_ioctl(struct tape_device *device, get.mt_blkno = rc; } - if (copy_to_user((char __user *) data, &get, sizeof(get)) != 0) - return -EFAULT; - - return 0; + return put_user_mtget(data, &get, compat); } /* Try the discipline ioctl function. */ if (device->discipline->ioctl_fn == NULL) return -EINVAL; - return device->discipline->ioctl_fn(device, no, data); + return device->discipline->ioctl_fn(device, no, (unsigned long)data); } static long @@ -445,7 +440,7 @@ tapechar_ioctl(struct file *filp, unsigned int no, unsigned long data) device = (struct tape_device *) filp->private_data; mutex_lock(&device->mutex); - rc = __tapechar_ioctl(device, no, data); + rc = __tapechar_ioctl(device, no, (void __user *)data, false); mutex_unlock(&device->mutex); return rc; } @@ -455,23 +450,17 @@ static long tapechar_compat_ioctl(struct file *filp, unsigned int no, unsigned long data) { struct tape_device *device = filp->private_data; - int rval = -ENOIOCTLCMD; - unsigned long argp; + long rc; - /* The 'arg' argument of any ioctl function may only be used for - * pointers because of the compat pointer conversion. - * Consider this when adding new ioctls. - */ - argp = (unsigned long) compat_ptr(data); - if (device->discipline->ioctl_fn) { - mutex_lock(&device->mutex); - rval = device->discipline->ioctl_fn(device, no, argp); - mutex_unlock(&device->mutex); - if (rval == -EINVAL) - rval = -ENOIOCTLCMD; - } + if (no == MTIOCPOS32) + no = MTIOCPOS; + else if (no == MTIOCGET32) + no = MTIOCGET; - return rval; + mutex_lock(&device->mutex); + rc = __tapechar_ioctl(device, no, compat_ptr(data), false); + mutex_unlock(&device->mutex); + return rc; } #endif /* CONFIG_COMPAT */ diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index be3c73ebbfde..edfde6edfc18 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c @@ -33,6 +33,7 @@ static const char * osst_version = "0.99.4"; #include +#include #include #include #include @@ -4941,7 +4942,7 @@ static int os_scsi_tape_close(struct inode * inode, struct file * filp) static long osst_ioctl(struct file * file, unsigned int cmd_in, unsigned long arg) { - int i, cmd_nr, cmd_type, blk, retval = 0; + int i, cmd_nr, cmd_type, cmd_size, blk, retval = 0; struct st_modedef * STm; struct st_partstat * STps; struct osst_request * SRpnt = NULL; @@ -4978,6 +4979,7 @@ static long osst_ioctl(struct file * file, cmd_type = _IOC_TYPE(cmd_in); cmd_nr = _IOC_NR(cmd_in); + cmd_size = _IOC_SIZE(cmd_in); #if DEBUG printk(OSST_DEB_MSG "%s:D: Ioctl %d,%d in %s mode\n", name, cmd_type, cmd_nr, STp->raw?"raw":"normal"); @@ -5179,7 +5181,8 @@ static long osst_ioctl(struct file * file, if (cmd_type == _IOC_TYPE(MTIOCGET) && cmd_nr == _IOC_NR(MTIOCGET)) { struct mtget mt_status; - if (_IOC_SIZE(cmd_in) != sizeof(struct mtget)) { + if (cmd_size != sizeof(struct mtget) && + cmd_size != sizeof(struct mtget32)) { retval = (-EINVAL); goto out; } @@ -5229,21 +5232,18 @@ static long osst_ioctl(struct file * file, STp->drv_buffer != 0) mt_status.mt_gstat |= GMT_IM_REP_EN(0xffffffff); - i = copy_to_user(p, &mt_status, sizeof(struct mtget)); - if (i) { - retval = (-EFAULT); - goto out; - } - - STp->recover_erreg = 0; /* Clear after read */ - retval = 0; + retval = put_user_mtget(p, &mt_status, + cmd_size == sizeof(struct mtget32)); + if (!retval) + STp->recover_erreg = 0; /* Clear after read */ goto out; } /* End of MTIOCGET */ if (cmd_type == _IOC_TYPE(MTIOCPOS) && cmd_nr == _IOC_NR(MTIOCPOS)) { struct mtpos mt_pos; - if (_IOC_SIZE(cmd_in) != sizeof(struct mtpos)) { + if (cmd_size != sizeof(struct mtpos) && + cmd_size != sizeof(struct mtpos32)) { retval = (-EINVAL); goto out; } @@ -5256,9 +5256,7 @@ static long osst_ioctl(struct file * file, goto out; } mt_pos.mt_blkno = blk; - i = copy_to_user(p, &mt_pos, sizeof(struct mtpos)); - if (i) - retval = -EFAULT; + retval = put_user_mtpos(p, &mt_pos, cmd_size == sizeof(struct mtpos32)); goto out; } if (SRpnt) osst_release_request(SRpnt); @@ -5284,6 +5282,14 @@ static long osst_compat_ioctl(struct file * file, unsigned int cmd_in, unsigned struct osst_tape *STp = file->private_data; struct scsi_device *sdev = STp->device; int ret = -ENOIOCTLCMD; + + switch (cmd_in) { + case MTIOCTOP: + case MTIOCPOS32: + case MTIOCGET32: + return osst_ioctl(file, cmd_in, (unsigned long)compat_ptr(arg)); + } + if (sdev->host->hostt->compat_ioctl) { ret = sdev->host->hostt->compat_ioctl(sdev, cmd_in, (void __user *)arg); diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index 19c022e66d63..f0cb35964a30 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -21,6 +21,7 @@ static const char *verstr = "20160209"; #include +#include #include #include #include @@ -3502,7 +3503,7 @@ static int partition_tape(struct scsi_tape *STp, int size) /* The ioctl command */ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) { - int i, cmd_nr, cmd_type, bt; + int i, cmd_nr, cmd_type, cmd_size, bt; int retval = 0; unsigned int blk; struct scsi_tape *STp = file->private_data; @@ -3536,6 +3537,7 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) cmd_type = _IOC_TYPE(cmd_in); cmd_nr = _IOC_NR(cmd_in); + cmd_size = _IOC_SIZE(cmd_in); if (cmd_type == _IOC_TYPE(MTIOCTOP) && cmd_nr == _IOC_NR(MTIOCTOP)) { struct mtop mtc; @@ -3745,7 +3747,8 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) if (cmd_type == _IOC_TYPE(MTIOCGET) && cmd_nr == _IOC_NR(MTIOCGET)) { struct mtget mt_status; - if (_IOC_SIZE(cmd_in) != sizeof(struct mtget)) { + if (cmd_size != sizeof(struct mtget) && + cmd_size != sizeof(struct mtget32)) { retval = (-EINVAL); goto out; } @@ -3800,19 +3803,16 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) if (STp->cleaning_req) mt_status.mt_gstat |= GMT_CLN(0xffffffff); - i = copy_to_user(p, &mt_status, sizeof(struct mtget)); - if (i) { - retval = (-EFAULT); - goto out; - } + retval = put_user_mtget(p, &mt_status, + cmd_size == sizeof(struct mtget32)); STp->recover_reg = 0; /* Clear after read */ - retval = 0; goto out; } /* End of MTIOCGET */ if (cmd_type == _IOC_TYPE(MTIOCPOS) && cmd_nr == _IOC_NR(MTIOCPOS)) { struct mtpos mt_pos; - if (_IOC_SIZE(cmd_in) != sizeof(struct mtpos)) { + if (cmd_size != sizeof(struct mtpos) && + cmd_size != sizeof(struct mtpos32)) { retval = (-EINVAL); goto out; } @@ -3821,9 +3821,8 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) goto out; } mt_pos.mt_blkno = blk; - i = copy_to_user(p, &mt_pos, sizeof(struct mtpos)); - if (i) - retval = (-EFAULT); + retval = put_user_mtpos(p, &mt_pos, + cmd_size == sizeof(struct mtpos32)); goto out; } mutex_unlock(&STp->lock); @@ -3857,14 +3856,22 @@ static long st_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) } #ifdef CONFIG_COMPAT -static long st_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +static long st_compat_ioctl(struct file *file, unsigned int cmd_in, unsigned long arg) { struct scsi_tape *STp = file->private_data; struct scsi_device *sdev = STp->device; int ret = -ENOIOCTLCMD; + + switch (cmd_in) { + case MTIOCTOP: + case MTIOCPOS32: + case MTIOCGET32: + return st_ioctl(file, cmd_in, (unsigned long)compat_ptr(arg)); + } + if (sdev->host->hostt->compat_ioctl) { - ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg); + ret = sdev->host->hostt->compat_ioctl(sdev, cmd_in, (void __user *)arg); } return ret; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index ab2ff530313b..6eb7a3f51702 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -279,70 +278,6 @@ static int sg_grt_trans(struct file *file, return err; } -struct mtget32 { - compat_long_t mt_type; - compat_long_t mt_resid; - compat_long_t mt_dsreg; - compat_long_t mt_gstat; - compat_long_t mt_erreg; - compat_daddr_t mt_fileno; - compat_daddr_t mt_blkno; -}; -#define MTIOCGET32 _IOR('m', 2, struct mtget32) - -struct mtpos32 { - compat_long_t mt_blkno; -}; -#define MTIOCPOS32 _IOR('m', 3, struct mtpos32) - -static int mt_ioctl_trans(struct file *file, - unsigned int cmd, void __user *argp) -{ - /* NULL initialization to make gcc shut up */ - struct mtget __user *get = NULL; - struct mtget32 __user *umget32; - struct mtpos __user *pos = NULL; - struct mtpos32 __user *upos32; - unsigned long kcmd; - void *karg; - int err = 0; - - switch(cmd) { - case MTIOCPOS32: - kcmd = MTIOCPOS; - pos = compat_alloc_user_space(sizeof(*pos)); - karg = pos; - break; - default: /* MTIOCGET32 */ - kcmd = MTIOCGET; - get = compat_alloc_user_space(sizeof(*get)); - karg = get; - break; - } - if (karg == NULL) - return -EFAULT; - err = do_ioctl(file, kcmd, (unsigned long)karg); - if (err) - return err; - switch (cmd) { - case MTIOCPOS32: - upos32 = argp; - err = convert_in_user(&pos->mt_blkno, &upos32->mt_blkno); - break; - case MTIOCGET32: - umget32 = argp; - err = convert_in_user(&get->mt_type, &umget32->mt_type); - err |= convert_in_user(&get->mt_resid, &umget32->mt_resid); - err |= convert_in_user(&get->mt_dsreg, &umget32->mt_dsreg); - err |= convert_in_user(&get->mt_gstat, &umget32->mt_gstat); - err |= convert_in_user(&get->mt_erreg, &umget32->mt_erreg); - err |= convert_in_user(&get->mt_fileno, &umget32->mt_fileno); - err |= convert_in_user(&get->mt_blkno, &umget32->mt_blkno); - break; - } - return err ? -EFAULT: 0; -} - #endif /* CONFIG_BLOCK */ /* Bluetooth ioctls */ @@ -443,8 +378,6 @@ IGNORE_IOCTL(VT_GETMODE) */ COMPATIBLE_IOCTL(_IOR('p', 20, int[7])) /* RTCGET */ COMPATIBLE_IOCTL(_IOW('p', 21, int[7])) /* RTCSET */ -/* Little m */ -COMPATIBLE_IOCTL(MTIOCTOP) /* Socket level stuff */ COMPATIBLE_IOCTL(FIOQSIZE) #ifdef CONFIG_BLOCK @@ -775,9 +708,6 @@ static long do_ioctl_trans(unsigned int cmd, return sg_ioctl_trans(file, cmd, compat_ptr(arg)); case SG_GET_REQUEST_TABLE: return sg_grt_trans(file, cmd, compat_ptr(arg)); - case MTIOCGET32: - case MTIOCPOS32: - return mt_ioctl_trans(file, cmd, compat_ptr(arg)); #endif } diff --git a/include/linux/mtio.h b/include/linux/mtio.h new file mode 100644 index 000000000000..02640756a40d --- /dev/null +++ b/include/linux/mtio.h @@ -0,0 +1,58 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#ifndef _LINUX_MTIO_COMPAT_H +#define _LINUX_MTIO_COMPAT_H + +#include +#include + +/* + * helper functions for implementing compat ioctls on the four tape + * drivers: we define the 32-bit layout of each incompatible strucucture, + * plus a wrapper function to copy it to user space in either format. + */ + +struct mtget32 { + s32 mt_type; + s32 mt_resid; + s32 mt_dsreg; + s32 mt_gstat; + s32 mt_erreg; + s32 mt_fileno; + s32 mt_blkno; +}; +#define MTIOCGET32 _IOR('m', 2, struct mtget32) + +struct mtpos32 { + s32 mt_blkno; +}; +#define MTIOCPOS32 _IOR('m', 3, struct mtpos32) + +static inline int put_user_mtget(void __user *u, struct mtget *k, bool compat) +{ + struct mtget32 k32 = { + .mt_type = k->mt_type, + .mt_resid = k->mt_resid, + .mt_dsreg = k->mt_dsreg, + .mt_gstat = k->mt_gstat, + .mt_fileno = k->mt_fileno, + .mt_blkno = k->mt_blkno, + }; + int ret; + + if (IS_ENABLED(CONFIG_COMPAT) && compat) + ret = copy_to_user(u, &k32, sizeof(k32)); + else + ret = copy_to_user(u, k, sizeof(*k)); + + return ret ? -EFAULT : 0; +} + +static inline int put_user_mtpos(void __user *u, struct mtpos *k, bool compat) +{ + if (IS_ENABLED(CONFIG_COMPAT) && compat) + return put_user(k->mt_blkno, (u32 __user *)u); + else + return put_user(k->mt_blkno, (long __user *)u); +} + +#endif From patchwork Tue Apr 16 20:25:35 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162371 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661025jan; Tue, 16 Apr 2019 13:28:22 -0700 (PDT) X-Google-Smtp-Source: APXvYqw2m8b2fSH2FTUhkDMP361FKDZrIlE17eVZBY8Gl94Mt7/44YIYsk/fob20mD4gGTanrLeo X-Received: by 2002:a65:51c9:: with SMTP id i9mr78978380pgq.187.1555446502112; Tue, 16 Apr 2019 13:28:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446502; cv=none; d=google.com; s=arc-20160816; b=ZOpRJ7QToQB3uS/xJu5ySAFCH3SdvcJSJNN4V5j887LdtaXUnvuVMjEU/wzhdRMtwu 0DJIhQ2woeIKGN9Hi0r28U5pJbqxLq0j2h2gj8r0WfSXfdhxnaYtK34YkmRkKxHv4cfv 9VCC5nzaaHty1SDy8y7wgh7E64r/DpPDNla0EDzXzTFvzXklrblfF1gWchM6c//B+Ghk TEzYrHShp+uBvWQcWrh40iw9t9UwkugmJ9g/pvsNWpJEFa9bDMExlhEwyt0bazVe+y7U NTRn2A6xeuydf1xlUKwYSpknHhQrczkN2xOH17AVlUSYLjhzlSPDJVzR3IPFwYeOMH7U yZsw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=DOJswd8N2oOkK74WZMmXHbI6s+K+g4FrDz4tFnJ7dHk=; b=aR3+4+30LWWUsRsrgbtmMcbybDImiHHuWSzC4OzvYwwdFy5Oc4ETjPaRcM//hQCeez CoZeWP8IFh1zwTbaDjmideR4xoldFL/SGzCtn5Wf3rA7igT7Y3LzuWyVXI9ClKQ/hXwd AjLh72iqBU5UCacxVY1vmLFfCER8fnC6Lg7Iv1B8AkEEe82moxIbxdmqu/9At1tCSMVl zvj+Mq7bXjKXqe8hYa7Gc7Z+NW2uts4pR9pjhgKhHrRm7nC24xuHtv2m8WCAzp5wFn50 dUhTEkj5yQcjzUmFVx7M5pIcsNeGPr/UpL2BPmdeCHLfwNkpkF5Clp1vkJJOiUJ/sA1u NFzA== 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 h4si16434220plb.302.2019.04.16.13.28.21; Tue, 16 Apr 2019 13:28:22 -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 S1730636AbfDPU2U (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:20 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:45069 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730446AbfDPU2C (ORCPT ); Tue, 16 Apr 2019 16:28:02 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1Mr9O4-1gSXBy2fjy-00oDbO; Tue, 16 Apr 2019 22:27:40 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Bartlomiej Zolnierkiewicz , Mikulas Patocka , "David S. Miller" , =?utf-8?q?Ville_Syrj?= =?utf-8?b?w6Rsw6Q=?= , dri-devel@lists.freedesktop.org, linux-fbdev@vger.kernel.org Subject: [PATCH v3 14/26] compat_ioctl: move ATYFB_CLK handling to atyfb driver Date: Tue, 16 Apr 2019 22:25:35 +0200 Message-Id: <20190416202701.127745-3-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:C0I4iM7ah9sSs/Ga3OL/mLvU4BOuiuy7Hr1XtoBw48wtNdkZ4hG VCNkRnN6RAAoin8yeOfVagnup4xtdIwMoHD/ZyPmVfbBu+CW2aeKsfoSLhCmNh4xJh1xlG8 gAIXYBRAlpS9adxjA1wEA9/lr54iifHYcRnWLKNcH6O+ExkN8Rh86cO9JWbRQQ2ZyunAZ9t jN1tujqqGMMIrsLqNff/Q== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:Qa2ZV3CAEPE=:LnDTKzBXimzs226naIEirp DNpnQFXg0OCDzWadb705mrhnMwGUT60bdYU54RTLns2m4gVojBFcoFB2NfBGKljQEbu+v2u6b uUkHWwgPKy68miCaLLieghA+ZCKzInxMHLVJ5ncPTsacSkcpWNbr+gfwOFbMLUi6EZR2ZmrNv t92nRlHOtk1Vvd67aJM4+fEwO+YzuL6ihp0KQ3V6lqne945LuOOIwEXstQu49SXgUF0f1z0OB V7lrAlmE5RfjXln3SV/xVxOmzZk9ajL80d9UfRQJZ8/qT9gMF4tPdVrDgtuB7dOcsX5W1R63X c0dHo88D/BzP+DwWngSI5x5v/Gt+308ZRp9OBrcjByzXHuvOuUCyqHhkw7BXg7o5t1GJIs+0k 3zAXuE8ezSsKUt+5JvYta5w80vBuvOsNun01yhnrhhrkaq0gcNyvir72+tVgsytmV5wW+bLi+ RlE660ty7LgG2zwYZvkCPa6xydG8D8pI2DsdiUFUnH2C6cY7w8ueZ726Nu5/KJsDQKncotR5a nl8SHkARgb2AWwR04zR+49uUrYPnr0i++WyMQAj5/VXaXeT6kgFLxmRlKTvcQW7HotqS9DWWI nhay/HU/+3ywUkD6Enpj4eojJ067Bl2Gl0HfCVuzaSvKGI0rysTSZ6tNujr57XVh35nIFZ6xk YGw+T0y1oQ4gXu/qYjIaTxd42ZKfOFt3gE5YeNmxrLzdKJhPmOsQKAB+E9VPnKAIigaj68V+9 GMNE71R48LoRtEv0YWScJ1VEWTEQAEQLW4m37g== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These are two obscure ioctl commands, in a driver that only has compatible commands, so just let the driver handle this itself. Signed-off-by: Arnd Bergmann --- drivers/video/fbdev/aty/atyfb_base.c | 12 +++++++++++- fs/compat_ioctl.c | 2 -- 2 files changed, 11 insertions(+), 3 deletions(-) -- 2.20.0 diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index b6fe103df145..1bc4b6672fdc 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -48,7 +48,7 @@ ******************************************************************************/ - +#include #include #include #include @@ -235,6 +235,13 @@ static int atyfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); static int atyfb_blank(int blank, struct fb_info *info); static int atyfb_ioctl(struct fb_info *info, u_int cmd, u_long arg); +#ifdef CONFIG_COMPAT +static int atyfb_compat_ioctl(struct fb_info *info, u_int cmd, u_long arg) +{ + return atyfb_ioctl(info, cmd, (u_long)compat_ptr(arg)); +} +#endif + #ifdef __sparc__ static int atyfb_mmap(struct fb_info *info, struct vm_area_struct *vma); #endif @@ -290,6 +297,9 @@ static struct fb_ops atyfb_ops = { .fb_pan_display = atyfb_pan_display, .fb_blank = atyfb_blank, .fb_ioctl = atyfb_ioctl, +#ifdef CONFIG_COMPAT + .fb_compat_ioctl = atyfb_compat_ioctl, +#endif .fb_fillrect = atyfb_fillrect, .fb_copyarea = atyfb_copyarea, .fb_imageblit = atyfb_imageblit, diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 6eb7a3f51702..a0f230650de2 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -637,8 +637,6 @@ COMPATIBLE_IOCTL(CAPI_CLR_FLAGS) COMPATIBLE_IOCTL(CAPI_NCCI_OPENCOUNT) COMPATIBLE_IOCTL(CAPI_NCCI_GETUNIT) /* Misc. */ -COMPATIBLE_IOCTL(0x41545900) /* ATYIO_CLKR */ -COMPATIBLE_IOCTL(0x41545901) /* ATYIO_CLKW */ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_MEM) From patchwork Tue Apr 16 20:25:36 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162367 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4660760jan; Tue, 16 Apr 2019 13:28:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqzNSAcX3bKrKQFsKABZAbcUeCBdF5RiGBvWauiV8+xSbtuOLvD3C66okOoAgMDSVjAODbzM X-Received: by 2002:a63:6503:: with SMTP id z3mr72135773pgb.113.1555446480032; Tue, 16 Apr 2019 13:28:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446480; cv=none; d=google.com; s=arc-20160816; b=Ep9ZICePmeEeooF4VrOoaY9OAq9tsp/t2dgtPulfxCw//Q+ONji2a6IwUiY5rDv5jl beH2E+u18NViJxF0rkHjZ2Xp0W7u5sHmqHH3wbTRB8SQyveR4kaQ7hddepkGI3D2swrF VZCdm0vwngwJnf3ZzXvpxd0QA0FEWnP+CvekpTwVOZ9QQ2lSK2BuDADYdgIOfehZY3MB 6+F2FKELlsDgCjaHgDC8DJWAu7CPYeITvFICXsdPQAtYYUvYxp1B9D8ayClE2AIzkBte FZyTWclSYlbnUmW4U/QKaR5YfHI1Z8OYGbmj/9zpdaSz6gQuyq0XaLOxDTMKp46XUD/7 4YKA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NOVVwJa9l3qW7Z9p+RKQl3f00mCW7AOUXzWktLMnvrw=; b=NkrmkPKB/ss3Kr7bmrlwMwWKOD3pq3qq8BrqC92ogLaab3G2Qi/4hngvkO6vsLZhv7 y9GggypKU89DV/qmFIUYUDCeOhk4sZgQZUKuAUhVIJiHLcugIfKCWbtw/YVLpfNDmDsF KukMJCfgaSq5W9AwYkGA7lv6GcRgLJDNm7oemuYAQFEAdafOx5EnddfHC4pnPsYQG56k kyg0ZT76fQZeojdIJLfuLXUj59V0CAHAYUymhcaagDud4+VEs3fz1W14n/JLB3KQJfzL qB8ihvgzdCgdDTEkpAHxXeK+BE+9vws3R4BaoG11/dFdbwwCdS4GWwEUMOZKCt3q0cUM v0fQ== 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 f63si44345166pff.107.2019.04.16.13.27.59; Tue, 16 Apr 2019 13:28:00 -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 S1730434AbfDPU16 (ORCPT + 30 others); Tue, 16 Apr 2019 16:27:58 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:42899 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728373AbfDPU16 (ORCPT ); Tue, 16 Apr 2019 16:27:58 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MN5W7-1hXLF301gL-00J3uz; Tue, 16 Apr 2019 22:27:48 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Karsten Keil , Kees Cook , "David S. Miller" , Randy Dunlap , netdev@vger.kernel.org Subject: [PATCH v3 15/26] compat_ioctl: move isdn/capi ioctl translation into driver Date: Tue, 16 Apr 2019 22:25:36 +0200 Message-Id: <20190416202701.127745-4-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:1bxM3e87OBzkJ6OS+1ph95JDJYqy+l2IJieZER7kPSnMsUHHrCu avKu5ym+rekQQZIXiHGTDQt5mW+p2+0Ac/77OuC3gAik20i7aNmKCy8tzK0uqPfot4u/jki tPc2vHZpilSKBeW9R0rMzYLEGtADy5mZDjjBQ3p7dnUdY8BxvZXy9Ncrggj+AiY/FAuX/09 ijb3t/gkG9/l/S38Hx+2g== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:6IgTMv+EaAY=:Sby968aWJG/anO758O8t4n snkQQzG5HE+Gusu7iAQuFceZwkcjE8AR//RVJEkCLRjcT+sFK3h/e+1Wg8Mwdcuq9vEe4jB+n /oB+1dzuEgAzJjPydE4H49R2mKCpy/pWAUZ+PxgnL8GZyIDsB06Mmx9ccIHGfdB0lx9hSSs34 zUB33bfjsY2IgfiHoAE3GLTH6ygdKfxISjc9hDw9gUPJDhjhdXEYxFnkIAkx1AMr9DHajdgMB oTBnk6O45gqPuabz15hrFlmhJe0kdfzIn4BPbNvGVyMa8HhfG5/LU+epwAO6++Z1ArIM8o9e3 3EjIoiIPMzJVno0qEFlg1WD3OkaootzhSI7er/TkUSKRtT7NiDzw+0w6ZWUiqAhws3ABy6Z9x MxacVIjQeWRIwPlc2eEbLHQvjOxfqRC4QPZCIDC5hsB4qBETGeEFZm8DHQvN7CB0RcOJAP+m5 jzu7Mp3scd+rW2fy71FDZaQ31LzxUE5tbnTg8+mvWsDf0xMrbyk4Vr2F7RrX92vxz9T/UuPQd qvQccR+EJHteB9SlLoTxSzUd/pOOYcjOMTcrpm2UYeWtEa+gzEubC4UoYYMCRMAOY/GOBZ+gD RJPTDGtg5AvpX2AMIOSke3ZvCkW3fuiOIWQYYEmjFF68Q0o7h1PskI1ELyPqBxGDd258mec2T 65teQIztruHaReaEqlf83LqUd6xtWmjvGx01+MnqsroeerNpYOZS7KRkvYb63AwdM3cin7wDL BjNQfhHXj27dbZj43qs1CZN85JyvE55uvnE1/w== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Neither the old isdn4linux interface nor the newer mISDN stack ever had working 32-bit compat mode as far as I can tell. However, the CAPI stack has some ioctl commands that are correctly listed in fs/compat_ioctl.c. We can trivially move all of those into the corresponding file that implement the native handlers by adding a compat_ioctl redirect to that. I did notice that treating CAPI_MANUFACTURER_CMD() as compatible is broken, so I'm also adding a handler for that, realizing that in all likelyhood, nobody is ever going to call it. Signed-off-by: Arnd Bergmann --- drivers/isdn/capi/capi.c | 31 +++++++++++++++++++++++++++++++ fs/compat_ioctl.c | 17 ----------------- 2 files changed, 31 insertions(+), 17 deletions(-) -- 2.20.0 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index e1da70a9530c..744cfdeb9ecf 100644 --- a/drivers/isdn/capi/capi.c +++ b/drivers/isdn/capi/capi.c @@ -942,6 +942,34 @@ capi_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return ret; } +#ifdef CONFIG_COMPAT +static long +capi_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + int ret; + + if (cmd == CAPI_MANUFACTURER_CMD) { + struct { + unsigned long cmd; + compat_uptr_t data; + } mcmd32; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + if (copy_from_user(&mcmd32, compat_ptr(arg), sizeof(mcmd32))) + return -EFAULT; + + mutex_lock(&capi_mutex); + ret = capi20_manufacturer(mcmd32.cmd, compat_ptr(mcmd32.data)); + mutex_unlock(&capi_mutex); + + return ret; + } + + return capi_unlocked_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); +} +#endif + static int capi_open(struct inode *inode, struct file *file) { struct capidev *cdev; @@ -988,6 +1016,9 @@ static const struct file_operations capi_fops = .write = capi_write, .poll = capi_poll, .unlocked_ioctl = capi_unlocked_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = capi_compat_ioctl, +#endif .open = capi_open, .release = capi_release, }; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index a0f230650de2..aad7071eaee0 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -44,9 +44,6 @@ #include #include -#include -#include - #ifdef CONFIG_BLOCK #include #include @@ -622,20 +619,6 @@ COMPATIBLE_IOCTL(RFCOMMRELEASEDEV) COMPATIBLE_IOCTL(RFCOMMGETDEVLIST) COMPATIBLE_IOCTL(RFCOMMGETDEVINFO) COMPATIBLE_IOCTL(RFCOMMSTEALDLC) -/* CAPI */ -COMPATIBLE_IOCTL(CAPI_REGISTER) -COMPATIBLE_IOCTL(CAPI_GET_MANUFACTURER) -COMPATIBLE_IOCTL(CAPI_GET_VERSION) -COMPATIBLE_IOCTL(CAPI_GET_SERIAL) -COMPATIBLE_IOCTL(CAPI_GET_PROFILE) -COMPATIBLE_IOCTL(CAPI_MANUFACTURER_CMD) -COMPATIBLE_IOCTL(CAPI_GET_ERRCODE) -COMPATIBLE_IOCTL(CAPI_INSTALLED) -COMPATIBLE_IOCTL(CAPI_GET_FLAGS) -COMPATIBLE_IOCTL(CAPI_SET_FLAGS) -COMPATIBLE_IOCTL(CAPI_CLR_FLAGS) -COMPATIBLE_IOCTL(CAPI_NCCI_OPENCOUNT) -COMPATIBLE_IOCTL(CAPI_NCCI_GETUNIT) /* Misc. */ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) From patchwork Tue Apr 16 20:25:37 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162381 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4662534jan; Tue, 16 Apr 2019 13:29:45 -0700 (PDT) X-Google-Smtp-Source: APXvYqzQ/2BqCZzjSVorBMWFHqotI5ff0A8ZlwjJWSKDxhMgzQMy5ivfqJLBZYd38LXZ2CnUSuak X-Received: by 2002:aa7:9095:: with SMTP id i21mr84482216pfa.134.1555446585674; Tue, 16 Apr 2019 13:29:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446585; cv=none; d=google.com; s=arc-20160816; b=rpnfT4wdCLLuyPlM1L+pSNWU5Y+lwbyPUrqia9mSjWSPI5K6/TiH0/CLSavinnY5rF QO+/I3Wq5c/ILq3tHZRE20oh9at9GomuQM9bT4iWuMGJaChMt85Vneo6iEYoONP/mhWn bxGVgHa1kwKtKXFY/uCRBqEDkhvHnzOK9mlwdNKfRmzdk+s+TWrb1SyfJsnDWgAK9DeZ MlbQGXIWI3mSbtNw0V8nygOrx4rLsihyKsKJsTQ0fF2hAws49doAZUqouwrMqy8Y9B+H IcdscZfP3Kl1Bilt5Orv2zPoQb6KrdDU8KipRCsiwNgUldOe7PUXSXNC1mwFWxvXTQBB Ifag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=qF2MdSzHLSNTdVEwIIvpBEFuytQGdq7xk7qfA8dyG4g=; b=BXcpmZdM6vg1D92wFy9OdceYSuRczvPSlWeGggnN0aM7TxFJ9wqau/FbPjDagBC732 GY0U0o+W2mlicug5PWnOND1b4QzG8I0oTs8+85Q2zx529BSOsxbUwJTl9TYxRiG325Wi SE3pGealPCWcMw3yqS69nWpXDWchefwuTEoejfsNHYHQuGoMa6NcRAXENs8qDokhcHBp erKQF4lGLVmgx5vvU1Wrh+J7wrvARHfRItwH/fYYGIlWVzXzWH7MSmUqS1XSYFuyeF2z kSioiA8ZNdzo7Np3CfTwBPCWyPtFsvwQ2WdJU7ddj6DdGUoxnfGyE4HECHSjTbEfwaQa oOpQ== 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 o3si13107492pld.61.2019.04.16.13.29.45; Tue, 16 Apr 2019 13:29:45 -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 S1731006AbfDPU3n (ORCPT + 30 others); Tue, 16 Apr 2019 16:29:43 -0400 Received: from mout.kundenserver.de ([217.72.192.75]:35025 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730441AbfDPU2C (ORCPT ); Tue, 16 Apr 2019 16:28:02 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1M5Q6l-1hFfrw2wbt-001OVd; Tue, 16 Apr 2019 22:27:53 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Marcel Holtmann , Johan Hedberg , "David S. Miller" , Stefan Schmidt , Matthias Kaehlcke , Kees Cook , Yangtao Li , linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 16/26] compat_ioctl: move rfcomm handlers into driver Date: Tue, 16 Apr 2019 22:25:37 +0200 Message-Id: <20190416202701.127745-5-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Qiho7U3i4gw3R6Dcoyve6xDkcUvHNjZ3HtfY6H3tUIWlqE+XgY/ yyP4VMnOkoG3uF0UPP8hQk+KNTJTVI+rGSrQrYU6ZSjKL7ubiTRNdaxRc0jQuemCh8nmJ29 eYy+ztJx1g93COGuAIayP7h4qiMT2zqIH4+fcAkKG8jzm3D0kOCugSqRWB5enjZ3Y8+lbOl C+JYvnFgFiMoeqBEcVoIQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:J1QwsCf9W3g=:8xtgrPo3j5z1afVqLylf0R z5/ueFoTfyJTI3soAAg5tNr3EuOXzQfIs3tFHMsLp55hP6qUrFDGiJqdouuLsstZ8XC4/v/ZG GiUznrySp4SvxSsLR6Sbi+3Wy/PJ8XXZ9ShNMVXs2VsMmdoHrbBQEwrkYV+3QQVwGgeVAfNBo 4y4NtTlzAZfVZJ3cvwwjVBxAnm/VbirojoFAXou0is/hjYOjXvd/OxzEABzX4OhQ6K6u/htUO crYWOdYkZftKTV8RvuPGFYFDN8w2bR6Uwey/mEK+UhVslHemDgfl4Ki8xsqECpaSb/aBFxDud NvhIWtktp59vNDLUYfTjzAj1JbfZAMBVrLp9H4vheeotgoeE98FCaiO/QfOQdfHRNU8/zS41M fYATIqnaqrmaWGmNy0AclG6oHLK+bCLjB4mMxcJIjHx83FDmS34udDkUeFxCRgThM1ONFsej0 DSFLjRSUZ9Cn2oFLjMIwmQN0KI4SiNdxkkQK9Aa+FQhdXihtnCpIcxDI9AG03x12Fr8AHzq3T HY8XvCdCd6n3G46x5gpq9dX9/wYkXBO3U21TzrwJO5NlBhYxWFiCl94Ni07OJhuwKhSZG3cou Jv/XlLsr4nCXPzFLPZAoCSAhUyG4QNGtmDiVSc2KGz7/kAuBu/p38JI0b1gbmU7awk+DCAa+D VZrDxoMlRedlREACNN5J/iVgJzvs45I1TaewrgPOFwjAdvlJ6EKx7anFjd82r490afkbuZDQ3 6Bxosbg2aALPfaM11eLpunxt1xODTCoz3uDx8g== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All these ioctl commands are compatible, so we can handle them with a trivial wrapper in rfcomm/sock.c and remove the listing in fs/compat_ioctl.c. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 6 ------ net/bluetooth/rfcomm/sock.c | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 8 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index aad7071eaee0..efe3df389150 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -42,7 +42,6 @@ #include #include -#include #ifdef CONFIG_BLOCK #include @@ -614,11 +613,6 @@ COMPATIBLE_IOCTL(HCIUARTGETPROTO) COMPATIBLE_IOCTL(HCIUARTGETDEVICE) COMPATIBLE_IOCTL(HCIUARTSETFLAGS) COMPATIBLE_IOCTL(HCIUARTGETFLAGS) -COMPATIBLE_IOCTL(RFCOMMCREATEDEV) -COMPATIBLE_IOCTL(RFCOMMRELEASEDEV) -COMPATIBLE_IOCTL(RFCOMMGETDEVLIST) -COMPATIBLE_IOCTL(RFCOMMGETDEVINFO) -COMPATIBLE_IOCTL(RFCOMMSTEALDLC) /* Misc. */ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c index 90bb53aa4bee..b4eaf21360ef 100644 --- a/net/bluetooth/rfcomm/sock.c +++ b/net/bluetooth/rfcomm/sock.c @@ -24,7 +24,7 @@ /* * RFCOMM sockets. */ - +#include #include #include #include @@ -909,6 +909,13 @@ static int rfcomm_sock_ioctl(struct socket *sock, unsigned int cmd, unsigned lon return err; } +#ifdef CONFIG_COMPAT +static int rfcomm_sock_compat_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg) +{ + return rfcomm_sock_ioctl(sock, cmd, (unsigned long)compat_ptr(arg)); +} +#endif + static int rfcomm_sock_shutdown(struct socket *sock, int how) { struct sock *sk = sock->sk; @@ -1042,7 +1049,10 @@ static const struct proto_ops rfcomm_sock_ops = { .gettstamp = sock_gettstamp, .poll = bt_sock_poll, .socketpair = sock_no_socketpair, - .mmap = sock_no_mmap + .mmap = sock_no_mmap, +#ifdef CONFIG_COMPAT + .compat_ioctl = rfcomm_sock_compat_ioctl, +#endif }; static const struct net_proto_family rfcomm_sock_family_ops = { From patchwork Tue Apr 16 20:25:38 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162373 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661445jan; Tue, 16 Apr 2019 13:28:51 -0700 (PDT) X-Google-Smtp-Source: APXvYqxn0kWMf1j3PPYH1BiuauCgVV5c+6rr9fFB72SqfREOz6do0/zn0WK7BbceDn45FwqtSZkG X-Received: by 2002:a63:fe0a:: with SMTP id p10mr78097501pgh.86.1555446530968; Tue, 16 Apr 2019 13:28:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446530; cv=none; d=google.com; s=arc-20160816; b=z/ADpBUqklQIvUbozlFOqcclgg/hDaElFLPNR5UL5G9MJEDlZE3smUNcpd2pljY4O9 seh86voj9lWiPd2DZ17YjPU9IrQqe6Gkk1Ul7GM7NwWrWpRWQQrG9YoECh4H5ibP3YTf WOWmWsP0CWG39M0O2Aho33Jd/Yo9ZYLKie1Ks/bHNPB6l9Ny55h6Fovw7SPKO40j4B61 hmtLWTNeirS1JzJ67rSEykexua2v0MlL7mK1cucRW3DRCHzaU075cIhJsV84kPRRYkHI eN9qu5HFeWmobOi/AtNbpxqr1+G45uPkd/X+phxnCYODzlZvrAOIJrJAHmq5rN+W6w/+ 2vpA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=JR8OpN2ndqmbHlheoOPdXsn99VOAIzNJ5x4QnNXip1o=; b=v9n8Ob8C8D2Gc/mnvJknNXija7K23ongustHsrftGt772JlejTKu8z44TnzTw6Q/RD of/poCjrIFomnT9rwVLgQRs/vYzcIdv2oiiis9NRRPU5QJlWM8xOz1p/Ylyp9cETyvrL Z7hAG5UZ5lyQn1EdN1+sK4knmMp21muRfJM2lhy0UmKu5wfWQYr1jQjFATv+CaTyzpjw 1D2YLaVcOro+3Tn8bY/TZV3Ktlfc7Gqi4afuUAx+fmSs0u5JN0ymvd3uLeKaISDdXja0 0geLPZTW009G20StYqwcSuEjS/UK9NPQp07GO3Zq3VqfXj8RGsTQO4RJnfrmGm+HmYsK 229g== 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 g10si46890175pgs.397.2019.04.16.13.28.50; Tue, 16 Apr 2019 13:28: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 S1730765AbfDPU2r (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:47 -0400 Received: from mout.kundenserver.de ([217.72.192.74]:55579 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730442AbfDPU2C (ORCPT ); Tue, 16 Apr 2019 16:28:02 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MlNgx-1gZyGk3BEr-00llxR; Tue, 16 Apr 2019 22:27:55 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Marcel Holtmann , Johan Hedberg , "David S. Miller" , linux-bluetooth@vger.kernel.org, netdev@vger.kernel.org Subject: [PATCH v3 17/26] compat_ioctl: move hci_sock handlers into driver Date: Tue, 16 Apr 2019 22:25:38 +0200 Message-Id: <20190416202701.127745-6-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:wVrrxHykN4m2wuv4wYPBq2QrDsrHr9makxgNyqWbgjd+bJpateF 2WUZMhf20F9hdOvX/sNasRpmVnG2PfnLG6yidhtLbo8vRU1lerMkZq96jvaIfsjcqSjb+1P bQN6Y8Fr6S8vIJxT2FRCR8xfnPokm5YOLAa598BvzLR6ojgJ3wAj08WCRO6QO8kA5Wy/cq8 e9T5GQWp3jJ6mKXF+MRMw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:KwnzaPtod3Q=:/jbjy/rdACzfKB/hEu3lc7 g5wAhER3Di/By6pnDEPrwGhMjilM3HgmBA6Xn8rzEr5A3xRVRRa70f0UtyYo4h68Z/7Dirj6H 2VLGR29iJLoM9yeubBbcwkx5pLP+rg84ZoFRJNtwOg4tZVUZyI3rTQkEzsRZVhICJ1COi0Cp/ eCFM+//PMCuAm7e7JhhO5u/VLM1mGu+cuH3V27dsoIcvPfwTa/LT8rxcfB7W8I0W7Ni7VWQY5 xcVIpqb3PopkvORvH8FCKJNR9IjpZqnGe2X8qbxGjtLRNpIZ/Lc6eKXjM06jWtfzplup4N8kP iP2KpvAfcTaiDOZ1Hl/sI/qqpEBASc1Gz2KFWlPruUswAW63gqdhJqeXfMXcEJxKnytIaEgLe ftzIVNT73mUNJt35tX8AWuZSUxbWGOiRJLtWXMaEbrcZg3s00tI0x4N/FcAFhZ8qzULO6jvdW vLeMzU4eLWeUOVJRNlC3hxnXRmzi4nqhdaTxKcqGsJ6btAc0fkXwW/Buspj5QnRipWpxf6DKm HUIQjI6cWGzoce1PNSvJGTtyf6VFM2owCN3ROxBExHCoUBpeU/wzW5Q/cEIVkwkNKv+UUxwQk scNmZOxp8u8LLCV17r5LBZQxssa/tLaxKj8z3ZxtHnHKlPcjj6khrvA5dWmhyaxMBzCArzeLC sxu+NbMZ8s/UNjQd8vC96mUmHz15/g4J81oYTdzQ8c51M7jAaASWZ4lSGgVrAwwJwJbHkm9lj 8IJYoQ1CpcDjrKvopUbxuSlc//BVPkmiZ6du3g== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org All these ioctl commands are compatible, so we can handle them with a trivial wrapper in hci_sock.c and remove the listing in fs/compat_ioctl.c. A few of the commands pass integer arguments instead of pointers, so for correctness skip the compat_ptr() conversion here. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 24 ------------------------ net/bluetooth/hci_sock.c | 21 ++++++++++++++++++++- 2 files changed, 20 insertions(+), 25 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index efe3df389150..9024cae05eda 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -40,9 +40,6 @@ #include "internal.h" -#include -#include - #ifdef CONFIG_BLOCK #include #include @@ -587,27 +584,6 @@ COMPATIBLE_IOCTL(RNDADDENTROPY) COMPATIBLE_IOCTL(RNDZAPENTCNT) COMPATIBLE_IOCTL(RNDCLEARPOOL) /* Bluetooth */ -COMPATIBLE_IOCTL(HCIDEVUP) -COMPATIBLE_IOCTL(HCIDEVDOWN) -COMPATIBLE_IOCTL(HCIDEVRESET) -COMPATIBLE_IOCTL(HCIDEVRESTAT) -COMPATIBLE_IOCTL(HCIGETDEVLIST) -COMPATIBLE_IOCTL(HCIGETDEVINFO) -COMPATIBLE_IOCTL(HCIGETCONNLIST) -COMPATIBLE_IOCTL(HCIGETCONNINFO) -COMPATIBLE_IOCTL(HCIGETAUTHINFO) -COMPATIBLE_IOCTL(HCISETRAW) -COMPATIBLE_IOCTL(HCISETSCAN) -COMPATIBLE_IOCTL(HCISETAUTH) -COMPATIBLE_IOCTL(HCISETENCRYPT) -COMPATIBLE_IOCTL(HCISETPTYPE) -COMPATIBLE_IOCTL(HCISETLINKPOL) -COMPATIBLE_IOCTL(HCISETLINKMODE) -COMPATIBLE_IOCTL(HCISETACLMTU) -COMPATIBLE_IOCTL(HCISETSCOMTU) -COMPATIBLE_IOCTL(HCIBLOCKADDR) -COMPATIBLE_IOCTL(HCIUNBLOCKADDR) -COMPATIBLE_IOCTL(HCIINQUIRY) COMPATIBLE_IOCTL(HCIUARTSETPROTO) COMPATIBLE_IOCTL(HCIUARTGETPROTO) COMPATIBLE_IOCTL(HCIUARTGETDEVICE) diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c index d32077b28433..5d0ed28c0d3a 100644 --- a/net/bluetooth/hci_sock.c +++ b/net/bluetooth/hci_sock.c @@ -23,7 +23,7 @@ */ /* Bluetooth HCI sockets. */ - +#include #include #include #include @@ -1054,6 +1054,22 @@ static int hci_sock_ioctl(struct socket *sock, unsigned int cmd, return err; } +#ifdef CONFIG_COMPAT +static int hci_sock_compat_ioctl(struct socket *sock, unsigned int cmd, + unsigned long arg) +{ + switch (cmd) { + case HCIDEVUP: + case HCIDEVDOWN: + case HCIDEVRESET: + case HCIDEVRESTAT: + return hci_sock_ioctl(sock, cmd, arg); + } + + return hci_sock_ioctl(sock, cmd, (unsigned long)compat_ptr(arg)); +} +#endif + static int hci_sock_bind(struct socket *sock, struct sockaddr *addr, int addr_len) { @@ -1974,6 +1990,9 @@ static const struct proto_ops hci_sock_ops = { .sendmsg = hci_sock_sendmsg, .recvmsg = hci_sock_recvmsg, .ioctl = hci_sock_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = hci_sock_compat_ioctl, +#endif .poll = datagram_poll, .listen = sock_no_listen, .shutdown = sock_no_shutdown, From patchwork Tue Apr 16 20:25:39 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162369 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4660842jan; Tue, 16 Apr 2019 13:28:07 -0700 (PDT) X-Google-Smtp-Source: APXvYqx36POf1yFgV1RFKgYdg/AvP//+yIkrmRvvQ++Miaxb/B38Ni+7ZlYcBRoQ2WXJfRnrFiX0 X-Received: by 2002:aa7:83ce:: with SMTP id j14mr56108347pfn.57.1555446487591; Tue, 16 Apr 2019 13:28:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446487; cv=none; d=google.com; s=arc-20160816; b=RFuZffeegETmQIYjSgHMPma9PNH4lMKv7CGgEmngJHAyE/uPUgsywSq03lKUqA1foM jxrw70eF5DyU6PKmjtvhekyltUmFzypNSMa3GB7IoePxbDB4rQsVZDZTW45lPHrDmniE A2MFngXHOaH4a88I3gYccBGyRvFoyxCuAnSRbZ2lTQNmrK0jOISmoHsCajLhLxcpm8WN 1qr3zfyv5dtPHuTqWMbfhVAGMZixlDJ8MRTRv272QNqzqJQ9LDUkAzxCOeNSycNFV00L 0JX9PGoAsrOk7aCg/K0VxKWjVPzpCxYqdVT/QpaD8Bzc77k4KvYECCLLD9BUIS9tzVwY XG8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Q3kU5t0xL9hThEhrshcIZHIP5cPmlmIzGCW/p7DI2pc=; b=nZUZF1aggbzI5GZnuWtWDqFovwDZ/HLIYoG0MYDpcQSWCr3JlsURC5q0kbP+4LEGUB 9uRX6xokJbNiAoR+C1U/sh+jjUDoZYGPsPGdYvyp8Odo2EU7+ZSQwbMMGmAGyg3T5Klx ZtFCaAJCw6moV0qJeseBVWCgRkS6Cmv2lMdTYl+AdVEsDm1gpfktPtC9aLGeqFigsRa8 TWp3ilIux8aG7vggDulsAatKc4Mir9o+5wC6+V8wVM3/oYSJKAPJP98RC9oVr17QdTZe d8uVwsAIUpWDab1qVIDPlID5zI9piDwzZzyo6VPtHCws2N24tPMvOPYxoZN8Oe687He2 oOuQ== 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 c1si50999667pla.240.2019.04.16.13.28.07; Tue, 16 Apr 2019 13:28:07 -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 S1730553AbfDPU2F (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:05 -0400 Received: from mout.kundenserver.de ([212.227.17.10]:43067 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728373AbfDPU2A (ORCPT ); Tue, 16 Apr 2019 16:28:00 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MQMmF-1hU1KW3QCP-00MLi9; Tue, 16 Apr 2019 22:27:57 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 18/26] compat_ioctl: remove HCIUART handling Date: Tue, 16 Apr 2019 22:25:39 +0200 Message-Id: <20190416202701.127745-7-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:boivb7CwWV0bFt89B3RR2qvpQAzVzaYo05QGrOe2sRKMw5YXRh+ 8CsmlPybzsy/eW9KAAiDzwhfYIM4HNFLpbh4N/+N2BA1+Zmn2H8St3DS74fdn5dRpHQ/pZq W6oIyOeiJg7JxbitmkzvTKcIsfkpxggJXuxON1B9RAXe4/sm3LSnyW5ucY37Ut2VXf/6VFS 5WjtViPx9Xh6FcXRzWzWA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:bz5QFlz3xZQ=:0fUVQCoXsV0wy15sX8jem0 q2xNLR6CxZs/1XZVLUAopx/3ENqMHGO3mpivFDaxh0UQtpG5hAcyImhizAunChsOucZQb6Zjj vdVkTiSA1QDpe4tedYBQc9Y/w7dUWlBC6rP6t0Aa8SahOvmn8Grkvsrcg/6NfFaIflhoeFWwn uDWFTb2+ap3xbGGfqgHePVJoXWza50zV0x84IymbuWvHZ1WoI188xfbfz8Dk0QLH2qzsAMcMP g4N9VrQgcJX01mTKSCvHQC9WafwN/AbUJCeAkV9ccDefVauPuvC5VliJ3iBuIzfzELWjYJGi0 v2eNMsO1HH+Bdta/aN4tAknfgJ7lfAidT0QafxG9cyaJImkaEPAgUE3Al1WyHGjXRQKQtDnjn PG0ESwnyYcl2E+mDDQd9m3xN3lQSC1kNzVUuAvryhcHaGmWlR9F/numCYU6AgzKL6su0wDk2Q wc3d0+55PyNAC65B+VepIvC2FaKMMaEbySq6S49hIkXHMNF5L+UcRRfrGXjU2kr8ztqONxvbY Oezt/yVHPcAMCasp9xf47Y6dqPOcpcSpRChosAU1WUq092fagK0LRergm9f3ot4M1IkVTOEg0 /zmT3sYsJo2Kgox0XpUpl9fRYxdde89hYNHyRhX9SsL/CDM0Ii8dDD4Mcy3xJeBaznE5P7stu FgrAj+RSuxWSHEnmzzEoQIe1wuKovz4spaw2scKY7RL+15lpYQl/Y2oLw8Da36kMbsY+c00Ih Rq1fRQmoJTa1oEqPNX9xSqvQkgpgSUaDR6tPyQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org As of commit f0193d3ea73b ("change semantics of ldisc ->compat_ioctl()"), all hciuart ioctl commands are handled correctly in the driver, and we never need to go through the table here. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 13 ------------- 1 file changed, 13 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 9024cae05eda..9e96b8b63578 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -273,13 +273,6 @@ static int sg_grt_trans(struct file *file, #endif /* CONFIG_BLOCK */ -/* Bluetooth ioctls */ -#define HCIUARTSETPROTO _IOW('U', 200, int) -#define HCIUARTGETPROTO _IOR('U', 201, int) -#define HCIUARTGETDEVICE _IOR('U', 202, int) -#define HCIUARTSETFLAGS _IOW('U', 203, int) -#define HCIUARTGETFLAGS _IOR('U', 204, int) - /* on ia32 l_start is on a 32-bit boundary */ #if defined(CONFIG_IA64) || defined(CONFIG_X86_64) struct space_resv_32 { @@ -583,12 +576,6 @@ COMPATIBLE_IOCTL(RNDGETPOOL) COMPATIBLE_IOCTL(RNDADDENTROPY) COMPATIBLE_IOCTL(RNDZAPENTCNT) COMPATIBLE_IOCTL(RNDCLEARPOOL) -/* Bluetooth */ -COMPATIBLE_IOCTL(HCIUARTSETPROTO) -COMPATIBLE_IOCTL(HCIUARTGETPROTO) -COMPATIBLE_IOCTL(HCIUARTGETDEVICE) -COMPATIBLE_IOCTL(HCIUARTSETFLAGS) -COMPATIBLE_IOCTL(HCIUARTGETFLAGS) /* Misc. */ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) From patchwork Tue Apr 16 20:25:40 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162368 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4660808jan; Tue, 16 Apr 2019 13:28:04 -0700 (PDT) X-Google-Smtp-Source: APXvYqyXlrMPSC3rUP8ZgHlkHKRgS0FJzAQFYD1s9FXt5sbvErrl0WVLlvVHc+y1LnhkeGkBFWOh X-Received: by 2002:a63:fa54:: with SMTP id g20mr75129442pgk.242.1555446484916; Tue, 16 Apr 2019 13:28:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446484; cv=none; d=google.com; s=arc-20160816; b=xeXwrBHezFmcbQHwDWK0XMdSmcQmyL/0b2svOb37FTnitr6K9urZqvPVqEmUr3qNOw InWj6WG/bI9XaTSsKa7xyLX3NSksDWsD+f2UhqxDXKxjTL9U/7gzD2aZm92yhHvN4sfk boe3l2BrmRxbrEtpbIh40/gfSLsnOnR+i5rZyCByizD6iWoAUy61M6IDv2lE4v4hC/2Q EbjJjozxClmX9lvS3nxon/6kkljwuekRGLsy+fEks/qUZPnTKngjaAFT1qQfVot9TvVG rwg/M8taetSn2/f5iVipGP/tinVlqeDwouNrYTk2XS7XR+XD1tTuxd0GAZdoKpQ/KnIA WoBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=LgNOfcLrWX7koQpdpxOMcrsn1WysJEB4w/ntwP3rt9o=; b=LuaZ7LMzC9Z5y1V4LyA7M9Hzwfq6ToocUKiPzxj1NyjBYbU8DCZRUTtUx+RD3B8z5y A/JoY47jffoKjq6G3yPVqjFgwXKNrFdxMSeVijfjpgGehhVkiei2HeSyTVq7tUZT+Ru1 NqFaP2WnpBPr6ceCXqhwvWootgBPEnZHvKctIAd5aJ/nNM1+2QnyD7ysW1Kcr03vGFSC XkpBiJxEJBsI1lWaimA0kurgFWLdV8TUOBTFhZmmW4esQXK6I5WRkQcsoD/EfU+wfi13 yu/pFql29vgX5ezZ48AdZ02Ltcm+vF/ldt/n+Viexh72eCb5r4cSPJn0t+p0CAJQ0NZ1 Phyg== 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 b68si32608468plb.351.2019.04.16.13.28.04; Tue, 16 Apr 2019 13:28:04 -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 S1730503AbfDPU2D (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:03 -0400 Received: from mout.kundenserver.de ([212.227.17.13]:50973 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730443AbfDPU2C (ORCPT ); Tue, 16 Apr 2019 16:28:02 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue109 [212.227.15.145]) with ESMTPA (Nemesis) id 1MkYkC-1gZ8ve122o-00m2o6; Tue, 16 Apr 2019 22:28:00 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 19/26] compat_ioctl: remove HIDIO translation Date: Tue, 16 Apr 2019 22:25:40 +0200 Message-Id: <20190416202701.127745-8-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202701.127745-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202701.127745-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:KP7RKETAsyx1APxTJqu/gm7fo6tZif0m6uboxx+s+cPmL9wanUb S619M5SKRKQGDQl4qv0HnlPUr1P67hw2/PVpv0GmAh8gA8e+irQ40DSZp3zR7XEuOVPHDsy 8Qrs66dUIM6SYpmAiQ4rmcReOSASVL+6Jnn00dJrczwDYB5g1l5nzuzMcKn5XZs8v0w7xOG V7p2Zez00hdB6XitMjLJw== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:3JBGYWVv5yo=:g0C7zlD+xxC7rMaf3Y0NJR ke9CdDZbs88w/ISCupK8ycvI2Yv1fPVnAuWXlhvKr53VTsjzXUPd1xUKHhJkanKQiYkwTd5TJ prB7Ke9Np5/azrBQI4v7e9JQ/WneqEqKgK7eNkH0TpOPVTibzGj4O/1ZblRYtX4PBYrUoY0Mn +raOtGYGwKtU+TLsFMotDwzMHYSCay/3yMLSNffQL0vAHH5bF5zMnGPF6vsvqus2P6J+x9FPe VvCL/WrhUXS+Cs45MZLlZmEQt2nl5Lo8tx309FJL0WzMUNlHpjgITCdGH1jHYdbfUzioiQTUY ia+dE6H5D2TDQxMvQNS0cBCnxQwgg6Xc9whFjuKQzqd+ckJcEWnMVirxWbe5/pIUgbNJ2bGPg kcjelONy36+r8jXS+7lXWxk4UgKIX/x+dJUbW/06TVuWzsPJBenxoi2jvWLNH6ulLmlccRhTB /wUPmmhldoUkP9ca1KVyWGNJWBFPVSCD0z3MvnZhEi0QEkbXcgJgGBmyl7IZS0bnWtBPoMKdf jFRFZQtGQRjUQx5qRag7m2K6wndP+s+ecexnsk5FnNQh14SwgJuRBiqFfs+Xa62tNybqQ8SHy lQ+xByfSXmU+WauPtoUwrWuTTZi20x2N2JaJBfz63ycuDBTRoSrB0xeRR+qQ9hsrNf8cI283B OIRWC13g9akOyYaJVCRPuPKF3ion4rXTF77EjypiAvEwMiz3inJN8hV7QOl23zmtapCaSoAZP BEMXtVQf7pvpVH+TDXcCuxc0f7z9ZtOCJlia5A== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The two drivers implementing these both gained proper compat_ioctl() handlers a long time ago with commits bb6c8d8fa9b5 ("HID: hiddev: Add 32bit ioctl compatibilty") and ae5e49c79c05 ("HID: hidraw: add compatibility ioctl() for 32-bit applications."), so the lists in fs/compat_ioctl.c are no longer used. It appears that the lists were also incomplete, so the translation didn't actually work correctly when it was still in use. Remove them as cleanup. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 17 ----------------- 1 file changed, 17 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 9e96b8b63578..5d13336e9eaa 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -581,23 +581,6 @@ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_MEM) COMPATIBLE_IOCTL(PCIIOC_WRITE_COMBINE) -/* hiddev */ -COMPATIBLE_IOCTL(HIDIOCGVERSION) -COMPATIBLE_IOCTL(HIDIOCAPPLICATION) -COMPATIBLE_IOCTL(HIDIOCGDEVINFO) -COMPATIBLE_IOCTL(HIDIOCGSTRING) -COMPATIBLE_IOCTL(HIDIOCINITREPORT) -COMPATIBLE_IOCTL(HIDIOCGREPORT) -COMPATIBLE_IOCTL(HIDIOCSREPORT) -COMPATIBLE_IOCTL(HIDIOCGREPORTINFO) -COMPATIBLE_IOCTL(HIDIOCGFIELDINFO) -COMPATIBLE_IOCTL(HIDIOCGUSAGE) -COMPATIBLE_IOCTL(HIDIOCSUSAGE) -COMPATIBLE_IOCTL(HIDIOCGUCODE) -COMPATIBLE_IOCTL(HIDIOCGFLAG) -COMPATIBLE_IOCTL(HIDIOCSFLAG) -COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINDEX) -COMPATIBLE_IOCTL(HIDIOCGCOLLECTIONINFO) /* joystick */ COMPATIBLE_IOCTL(JSIOCGVERSION) COMPATIBLE_IOCTL(JSIOCGAXES) From patchwork Tue Apr 16 20:28:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162380 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4662334jan; Tue, 16 Apr 2019 13:29:37 -0700 (PDT) X-Google-Smtp-Source: APXvYqxfekDBXIjoIOvRdoQNZgrbIAlvD6b8e+r0wk2P5nGKcH/MzdPUjCn+mn4bNm3wNspxH3oq X-Received: by 2002:a17:902:3e5:: with SMTP id d92mr80647165pld.11.1555446576971; Tue, 16 Apr 2019 13:29:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446576; cv=none; d=google.com; s=arc-20160816; b=tU2PS16Kav94UytZijUjdxTjMIWXFKJp4sWuw9nYNteJ2javptjb3Wgm3T2p1551+B LwKrFxznbQmuO7co43trDday0jC6eb0fFfUDGskXtTgFunnQQb9ylKmsl3s4vDUVWggJ LZE6t4yHOamv6WLqqh1GlzqOwymg9AoKgjtkeH4MtXrDWNT3KRkYZdoqKocno2is57P6 XmVCHPnaJH9SMJo/4chTsqOrq0+B5EZJHSIVH0yzjUw4TuKLcRlhPS9q4d/ZzGMLNrz1 LwDm0tlVOxPEBeJqICBJrRjXE4aBWX1buMMePdcv840qXZaV1ls2Yoo0g7rmj2JjDnM3 31ag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=gnBDmQqJ0jvABFrjpq4QdcyQkrvpcUGRCYzGdyY4Wyg=; b=QeTH93xxY4LSXaEPiU0gmg3KhhpEQPNoHs/PLdt2xez157Jwck3I88CPWC/rFLL3kA DsD2uC6hoql2SuMcp94XedbJM2b5Wu7ceRmMmbdC0qCrmISZG7PGuu+Ku6qMrKQ4Kd7M VnIr81rN/tLyLc5PU+pg5dxyYr+KSitRpPAUtOHSbz0iTiIUm526qQLTr0MDKYxNJYJy GWnPmlUbT+fyKYfYbwnByLOWX5DEfX9R/zrmEe8m2KBI6u8YamyOfTNiQ6x6iv4FKMc5 5pytg4ikvIxcvIPIQAvU6PxsPfyQXwDJs6vZ5hpHFtBlPSHbM/TaJnclHV/AkBTFahdb XI5A== 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 l190si33985003pgd.146.2019.04.16.13.29.36; Tue, 16 Apr 2019 13:29:36 -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 S1730934AbfDPU3f (ORCPT + 30 others); Tue, 16 Apr 2019 16:29:35 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:56793 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727180AbfDPU3d (ORCPT ); Tue, 16 Apr 2019 16:29:33 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mq2za-1gTd8d3NQY-00n9Zp; Tue, 16 Apr 2019 22:28:41 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Jaroslav Kysela , Takashi Iwai , Vinod Koul , linux-um@lists.infradead.org, alsa-devel@alsa-project.org Subject: [PATCH v3 20/26] compat_ioctl: remove translation for sound ioctls Date: Tue, 16 Apr 2019 22:28:05 +0200 Message-Id: <20190416202839.248216-1-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202013.4034148-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:mKAJ4vltBmPlWCiZYnDCwW+VEhJjQIdp5ngMRC1rR2fUmOP2Is1 cAYiX0n7sO4FNhTFtckvCgE51si4xId5Nfj3e1jFT0VcKg7RDaEfC9cvln7ttfafiKQeSv/ +74X2mOQrGvAsZBdytf2wmN/69K8cMwTN7wKZfgNqz+NaqWaVnZ6eL7+YaqNatwIlNsP/EE wW+NvSHRdeyBYVBWifIwQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:y5gValG+h3E=:0LwxiVbVDVtnsVvvQlF0Qi rHTRNF5SHWjXm6ewuNkkAMRxgu+AGka0nCXVRLMaY/glcXbziX1H2B0ryknWtoYKIYatW948d 0lVbP8BXbC1BvU4kxhCPxMrl4OAg18Xs7hmkCa7LnMj10OK7zANfKvm27Pbq2GD/hmlQXN+oF 65mUxNi854hZ/vnkmxgBbLhawhHDusfwApW2QQUZB5xDyIj5FrkRQ7NKdQi1y99GJUgfMflix wkZCS+3i7h9sorr6FDvnbKtvLE0u5kE0V+fvQ0t1azpiUS0Lt++LrJR69fHbD6wUiB2BTg6Ww EoITVejfZmgeEnWDP/LOmnILgNBzI6QKgpGKTRHZJLDF5+gAo/wqylekxS0Gb41IdDXYA1OTR vifA7Qlj9q/fmdmgozLWHqhApJ8O0JHQzei5McmGa3CrfavZllTxqvB0mYvwyFy6DPMXL+iUh PfKGhOUCgjTUGQaehC3REtFaXzu7ke+JDIUAqlndiKF4MzeMLL61L9tv9KVrkRJH9rD8JNsqw wCZV/lR8jqJlTTbwYOuB+Qa8yCUc72WcUYY6wmPy91vX75apf+BtJqsdPHVGDYhgj/QAm4AZs PljI+556/W1CU2JqUYGVFE2oje9s/QaVhpZyeUZtlxLypWdaf81aLeBngHb35NQ4itXwzXJmb FQNhR1xxmsyuhOPhUXXtE1xXho30eR6BLmwkni4TGdlVhr/IbsK/KbolP4KAZB/0r549lzYA0 fIrDuVyC8fOaoGLK345yqp0XMu8yzhLsiVTbsA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The SNDCTL_* and SOUND_* commands are the old OSS user interface. I checked all the sound ioctl commands listed in fs/compat_ioctl.c to see if we still need the translation handlers. Here is what I found: - sound/oss/ is (almost) gone from the kernel, this is what actually needed all the translations - The ALSA emulation for OSS correctly handles all compat_ioctl commands already. - sound/oss/dmasound/ is the last holdout of the original OSS code, this is only used on arch/m68k, which has no 64-bit mode and hence needs no compat handlers - arch/um/drivers/hostaudio_kern.c may run in 64-bit mode with 32-bit x86 user space underneath it. This rare corner case is the only one that still needs the compat handlers. By adding a simple redirect of .compat_ioctl to .unlocked_ioctl in the UML driver, we can remove all the COMPATIBLE_IOCTL() annotations without a change in functionality. For completeness, I'm adding the same thing to the dmasound file, knowing that it makes no difference. The compat_ioctl list contains one comment about SNDCTL_DSP_MAPINBUF and SNDCTL_DSP_MAPOUTBUF, which actually would need a translation handler if implemented. However, the native implementation just returns -EINVAL, so we don't care. Signed-off-by: Arnd Bergmann --- arch/um/drivers/hostaudio_kern.c | 1 + fs/compat_ioctl.c | 158 ----------------------------- sound/core/oss/pcm_oss.c | 4 + sound/oss/dmasound/dmasound_core.c | 2 + 4 files changed, 7 insertions(+), 158 deletions(-) -- 2.20.0 Reviewed-by: Takashi Iwai diff --git a/arch/um/drivers/hostaudio_kern.c b/arch/um/drivers/hostaudio_kern.c index 7f9dbdbc4eb7..1bf139c3727a 100644 --- a/arch/um/drivers/hostaudio_kern.c +++ b/arch/um/drivers/hostaudio_kern.c @@ -298,6 +298,7 @@ static const struct file_operations hostaudio_fops = { .write = hostaudio_write, .poll = hostaudio_poll, .unlocked_ioctl = hostaudio_ioctl, + .compat_ioctl = compat_ptr_ioctl, .mmap = NULL, .open = hostaudio_open, .release = hostaudio_release, diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 5d13336e9eaa..625536aa6b03 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -51,8 +51,6 @@ #include #include -#include - #include @@ -399,162 +397,6 @@ COMPATIBLE_IOCTL(SG_GET_KEEP_ORPHAN) /* PPP stuff */ COMPATIBLE_IOCTL(PPPIOCGUNIT) COMPATIBLE_IOCTL(PPPIOCGCHAN) -/* Big A */ -/* sparc only */ -/* Big Q for sound/OSS */ -COMPATIBLE_IOCTL(SNDCTL_SEQ_RESET) -COMPATIBLE_IOCTL(SNDCTL_SEQ_SYNC) -COMPATIBLE_IOCTL(SNDCTL_SYNTH_INFO) -COMPATIBLE_IOCTL(SNDCTL_SEQ_CTRLRATE) -COMPATIBLE_IOCTL(SNDCTL_SEQ_GETOUTCOUNT) -COMPATIBLE_IOCTL(SNDCTL_SEQ_GETINCOUNT) -COMPATIBLE_IOCTL(SNDCTL_SEQ_PERCMODE) -COMPATIBLE_IOCTL(SNDCTL_FM_LOAD_INSTR) -COMPATIBLE_IOCTL(SNDCTL_SEQ_TESTMIDI) -COMPATIBLE_IOCTL(SNDCTL_SEQ_RESETSAMPLES) -COMPATIBLE_IOCTL(SNDCTL_SEQ_NRSYNTHS) -COMPATIBLE_IOCTL(SNDCTL_SEQ_NRMIDIS) -COMPATIBLE_IOCTL(SNDCTL_MIDI_INFO) -COMPATIBLE_IOCTL(SNDCTL_SEQ_THRESHOLD) -COMPATIBLE_IOCTL(SNDCTL_SYNTH_MEMAVL) -COMPATIBLE_IOCTL(SNDCTL_FM_4OP_ENABLE) -COMPATIBLE_IOCTL(SNDCTL_SEQ_PANIC) -COMPATIBLE_IOCTL(SNDCTL_SEQ_OUTOFBAND) -COMPATIBLE_IOCTL(SNDCTL_SEQ_GETTIME) -COMPATIBLE_IOCTL(SNDCTL_SYNTH_ID) -COMPATIBLE_IOCTL(SNDCTL_SYNTH_CONTROL) -COMPATIBLE_IOCTL(SNDCTL_SYNTH_REMOVESAMPLE) -/* Big T for sound/OSS */ -COMPATIBLE_IOCTL(SNDCTL_TMR_TIMEBASE) -COMPATIBLE_IOCTL(SNDCTL_TMR_START) -COMPATIBLE_IOCTL(SNDCTL_TMR_STOP) -COMPATIBLE_IOCTL(SNDCTL_TMR_CONTINUE) -COMPATIBLE_IOCTL(SNDCTL_TMR_TEMPO) -COMPATIBLE_IOCTL(SNDCTL_TMR_SOURCE) -COMPATIBLE_IOCTL(SNDCTL_TMR_METRONOME) -COMPATIBLE_IOCTL(SNDCTL_TMR_SELECT) -/* Little m for sound/OSS */ -COMPATIBLE_IOCTL(SNDCTL_MIDI_PRETIME) -COMPATIBLE_IOCTL(SNDCTL_MIDI_MPUMODE) -COMPATIBLE_IOCTL(SNDCTL_MIDI_MPUCMD) -/* Big P for sound/OSS */ -COMPATIBLE_IOCTL(SNDCTL_DSP_RESET) -COMPATIBLE_IOCTL(SNDCTL_DSP_SYNC) -COMPATIBLE_IOCTL(SNDCTL_DSP_SPEED) -COMPATIBLE_IOCTL(SNDCTL_DSP_STEREO) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETBLKSIZE) -COMPATIBLE_IOCTL(SNDCTL_DSP_CHANNELS) -COMPATIBLE_IOCTL(SOUND_PCM_WRITE_FILTER) -COMPATIBLE_IOCTL(SNDCTL_DSP_POST) -COMPATIBLE_IOCTL(SNDCTL_DSP_SUBDIVIDE) -COMPATIBLE_IOCTL(SNDCTL_DSP_SETFRAGMENT) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETFMTS) -COMPATIBLE_IOCTL(SNDCTL_DSP_SETFMT) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETOSPACE) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETISPACE) -COMPATIBLE_IOCTL(SNDCTL_DSP_NONBLOCK) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETCAPS) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETTRIGGER) -COMPATIBLE_IOCTL(SNDCTL_DSP_SETTRIGGER) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETIPTR) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETOPTR) -/* SNDCTL_DSP_MAPINBUF, XXX needs translation */ -/* SNDCTL_DSP_MAPOUTBUF, XXX needs translation */ -COMPATIBLE_IOCTL(SNDCTL_DSP_SETSYNCRO) -COMPATIBLE_IOCTL(SNDCTL_DSP_SETDUPLEX) -COMPATIBLE_IOCTL(SNDCTL_DSP_GETODELAY) -COMPATIBLE_IOCTL(SNDCTL_DSP_PROFILE) -COMPATIBLE_IOCTL(SOUND_PCM_READ_RATE) -COMPATIBLE_IOCTL(SOUND_PCM_READ_CHANNELS) -COMPATIBLE_IOCTL(SOUND_PCM_READ_BITS) -COMPATIBLE_IOCTL(SOUND_PCM_READ_FILTER) -/* Big C for sound/OSS */ -COMPATIBLE_IOCTL(SNDCTL_COPR_RESET) -COMPATIBLE_IOCTL(SNDCTL_COPR_LOAD) -COMPATIBLE_IOCTL(SNDCTL_COPR_RDATA) -COMPATIBLE_IOCTL(SNDCTL_COPR_RCODE) -COMPATIBLE_IOCTL(SNDCTL_COPR_WDATA) -COMPATIBLE_IOCTL(SNDCTL_COPR_WCODE) -COMPATIBLE_IOCTL(SNDCTL_COPR_RUN) -COMPATIBLE_IOCTL(SNDCTL_COPR_HALT) -COMPATIBLE_IOCTL(SNDCTL_COPR_SENDMSG) -COMPATIBLE_IOCTL(SNDCTL_COPR_RCVMSG) -/* Big M for sound/OSS */ -COMPATIBLE_IOCTL(SOUND_MIXER_READ_VOLUME) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_BASS) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_TREBLE) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_SYNTH) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_PCM) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_SPEAKER) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_LINE) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_MIC) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_CD) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_IMIX) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_ALTPCM) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_RECLEV) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_IGAIN) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_OGAIN) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_LINE1) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_LINE2) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_LINE3) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_DIGITAL1)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_DIGITAL2)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_DIGITAL3)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_PHONEIN)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_PHONEOUT)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_VIDEO)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_RADIO)) -COMPATIBLE_IOCTL(MIXER_READ(SOUND_MIXER_MONITOR)) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_MUTE) -/* SOUND_MIXER_READ_ENHANCE, same value as READ_MUTE */ -/* SOUND_MIXER_READ_LOUD, same value as READ_MUTE */ -COMPATIBLE_IOCTL(SOUND_MIXER_READ_RECSRC) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_DEVMASK) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_RECMASK) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_STEREODEVS) -COMPATIBLE_IOCTL(SOUND_MIXER_READ_CAPS) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_VOLUME) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_BASS) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_TREBLE) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_SYNTH) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_PCM) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_SPEAKER) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_LINE) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_MIC) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_CD) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_IMIX) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_ALTPCM) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_RECLEV) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_IGAIN) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_OGAIN) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_LINE1) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_LINE2) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_LINE3) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_DIGITAL1)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_DIGITAL2)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_DIGITAL3)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_PHONEIN)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_PHONEOUT)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_VIDEO)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_RADIO)) -COMPATIBLE_IOCTL(MIXER_WRITE(SOUND_MIXER_MONITOR)) -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_MUTE) -/* SOUND_MIXER_WRITE_ENHANCE, same value as WRITE_MUTE */ -/* SOUND_MIXER_WRITE_LOUD, same value as WRITE_MUTE */ -COMPATIBLE_IOCTL(SOUND_MIXER_WRITE_RECSRC) -COMPATIBLE_IOCTL(SOUND_MIXER_INFO) -COMPATIBLE_IOCTL(SOUND_OLD_MIXER_INFO) -COMPATIBLE_IOCTL(SOUND_MIXER_ACCESS) -COMPATIBLE_IOCTL(SOUND_MIXER_AGC) -COMPATIBLE_IOCTL(SOUND_MIXER_3DSE) -COMPATIBLE_IOCTL(SOUND_MIXER_PRIVATE1) -COMPATIBLE_IOCTL(SOUND_MIXER_PRIVATE2) -COMPATIBLE_IOCTL(SOUND_MIXER_PRIVATE3) -COMPATIBLE_IOCTL(SOUND_MIXER_PRIVATE4) -COMPATIBLE_IOCTL(SOUND_MIXER_PRIVATE5) -COMPATIBLE_IOCTL(SOUND_MIXER_GETLEVELS) -COMPATIBLE_IOCTL(SOUND_MIXER_SETLEVELS) -COMPATIBLE_IOCTL(OSS_GETVERSION) /* Raw devices */ COMPATIBLE_IOCTL(RAW_SETBIND) COMPATIBLE_IOCTL(RAW_GETBIND) diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index f6ae68017608..f85ea328fd27 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -2732,6 +2732,10 @@ static long snd_pcm_oss_ioctl(struct file *file, unsigned int cmd, unsigned long static long snd_pcm_oss_ioctl_compat(struct file *file, unsigned int cmd, unsigned long arg) { + /* + * Everything is compatbile except SNDCTL_DSP_MAPINBUF/SNDCTL_DSP_MAPOUTBUF, + * which are not implemented for the native case either + */ return snd_pcm_oss_ioctl(file, cmd, (unsigned long)compat_ptr(arg)); } #else diff --git a/sound/oss/dmasound/dmasound_core.c b/sound/oss/dmasound/dmasound_core.c index fc9bcd47d6a4..f802ea331e24 100644 --- a/sound/oss/dmasound/dmasound_core.c +++ b/sound/oss/dmasound/dmasound_core.c @@ -384,6 +384,7 @@ static const struct file_operations mixer_fops = .owner = THIS_MODULE, .llseek = no_llseek, .unlocked_ioctl = mixer_unlocked_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = mixer_open, .release = mixer_release, }; @@ -1167,6 +1168,7 @@ static const struct file_operations sq_fops = .write = sq_write, .poll = sq_poll, .unlocked_ioctl = sq_unlocked_ioctl, + .compat_ioctl = compat_ptr_ioctl, .open = sq_open, .release = sq_release, }; From patchwork Tue Apr 16 20:28:06 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162378 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661988jan; Tue, 16 Apr 2019 13:29:19 -0700 (PDT) X-Google-Smtp-Source: APXvYqxBGjAbqaJ5mzzqamEp/Qk0WrRdfm6fpOmcAZ37qhrAEQCoNoxvQEVvoeR5KwHX7r3Yz6ik X-Received: by 2002:a62:424f:: with SMTP id p76mr85015593pfa.141.1555446559334; Tue, 16 Apr 2019 13:29:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446559; cv=none; d=google.com; s=arc-20160816; b=FmCbk0IbsgGn4zS6DWjH54hGj5PZuE3eSnhu6JFLRppDkTR1R+Iuh1jrTki/EzAJr/ q2BveUSu2CV3rbwx1+LDx+OehGgqsF2ScmsNVceCZJEoLta2iSxSBldJ3iGxbuAXwoKf X2x1tm+mFZpgyJaz8DpVVMSxJWRwhBkIXD1GnHfi7g+hU283eIKiEbJpqZakvZ49L7UT j8jhyS/w3Zxw2Aqps7KR+0JEgvNrHl8aKa1TxS0/r1fmRhMvzNj0eOMFrH4rIy3G5YK3 d8GGly56yBChKS9rxTUO3NJm9qcgiPDSZVxtDoNQL1Ju5JlU/XdDausyeK/iP/OWzdtD ljnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=ABhqmJQeewgLa3ZkH6RWQT4KrRbbOZpzhionw/j5i1Y=; b=RRvkS0cMQmIWOkTMhPzKKZIWoB2jgQAdwrXAe+cLcqcsFjcDJo8/VopSoe3B0kIpxI K4JjD1m1mzJamh8bWfEcTPTIRT2dsDWhyw8gICzvuDQsVqsn7nSM+5tX4BzQ8PrQDjU2 QqqAnRM4z0p1HjsXsYDSlqc9StFLt5oEbinqYf3bV6IcdvcBUt6wGhyjiMs0aIKIfLaO zcncdhclcDZFA/zua1Su481bRrrTrAVQzU6QbHAO5x3N/pLQ27YkhNc4wjGp1zX828OJ PqUqgRavIpS69AJpO6W1l+nKhd3GZIwpHjPJxKOWyp/g5/1XvVTBW/xmjY528cnQUn9t uMLg== 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 f24si14510316pgv.511.2019.04.16.13.29.19; Tue, 16 Apr 2019 13:29:19 -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 S1730811AbfDPU2x (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:53 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:36437 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730588AbfDPU2q (ORCPT ); Tue, 16 Apr 2019 16:28:46 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MbS0X-1gjttl2T0b-00bwNW; Tue, 16 Apr 2019 22:28:44 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 21/26] compat_ioctl: remove IGNORE_IOCTL() Date: Tue, 16 Apr 2019 22:28:06 +0200 Message-Id: <20190416202839.248216-2-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:Ay0NXVdQsnX0Bpy9xNzkDl1OuTukLuJANGE9LgdpW2dQl548Idd RiZgHAbL7b3fzwshDONkpSBnBpuL5RIKilaHHL4O0JjTgOmZ+HdLQOThg3PNC9YYLaTer+i Ewp8GF9/H2nSpqNUUSEUkNdGE30ol6bQ4oqQLI17TAkZMUruVklX8cPvrhxF2jEnuKOdz6X DsHPDKkPONW3aQSYnALFA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:1wRWGtouAwU=:zDreuz6/FTI1MfqgU9FSYj xDmnIM5T620SrIJ1gBtgbIkfV9fGZbyway6ROu0BFUYZjmql+ET3o7Gf27f2PFk3YtTbXUICF cYWI3aaRS1/CkTGATRWj9hWkvIfv8CSsb/HMaBH0vT/rHSxAFuGi59mCFOTf4zVzLD++NMjO8 lZG8krpPOUriembTz/6N0ltkmq210j/KPflJ0VMPb7/xjdLMzymGqxVXwzhzdn2JExHZgTJd0 s8QKKuThb/wWaGJ/XanVNMEo5DYF2Bn/E3cZcVrD4aF8q8hSpdOM49fp5GGEvNX3YrkMG0vHh MBAIrjaJdDSaokno98PWYPF5OgY3QQm4BF8t4U2akJwrXfKgPNuBLAEzGd/U+pkdOnPqrmUmZ vocabSwA7uEryL5thhXritcAGRJgTAUEjF2q4A1V6F9moM/5RSumVU5j0+scbi/iddptwOlbh ch6HN1EQdTgGHWPgEooDIG/6BIMKCFFphx2rHvQNQTk2H+h1VgdvrbpZjbY4WoZ5xUzNdgoKg VdeUkFDjNtUFkOmUr6Usecd63Mb64EJDNbNTWWQmnVaj4aPlXais7gEnvW/pa/dRBGIMurFs6 L9egrMQpYVGvXu+p9ZoyvYA9P2TPChEUXszyw2cYEptiCxGiP+/gke6gef16gBgUybHdTvuBq JpYA7EX6Yd/efU/imbHCcvxBIy6O/5QJeb+0ZBATORV+lsDTnTB+rG+5BRrB7TG3aE0Mj0YRt JEKIzSgyIN2EhsgG3Yp8NqlFmHgTH3fyN3saDA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Since commit 07d106d0a33d ("vfs: fix up ENOIOCTLCMD error handling"), we don't warn about unhandled compat-ioctl command code any more, but just return the same error that a native file descriptor returns when there is no handler. This means the IGNORE_IOCTL() annotations are completely useless and can all be removed. TIOCSTART/TIOCSTOP and KDGHWCLK/KDSHWCLK fall into the same category, but for some reason were listed as COMPATIBLE_IOCTL(). Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 56 ----------------------------------------------- 1 file changed, 56 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 625536aa6b03..bae7b38a881f 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -56,11 +56,6 @@ #include -#ifdef CONFIG_SPARC -#include -#include -#endif - #define convert_in_user(srcptr, dstptr) \ ({ \ typeof(*srcptr) val; \ @@ -313,17 +308,7 @@ static int compat_ioctl_preallocate(struct file *file, #define XFORM(i) (((i) ^ ((i) << 27) ^ ((i) << 17)) & 0xffffffff) #define COMPATIBLE_IOCTL(cmd) XFORM((u32)cmd), -/* ioctl should not be warned about even if it's not implemented. - Valid reasons to use this: - - It is implemented with ->compat_ioctl on some device, but programs - call it on others too. - - The ioctl is not implemented in the native kernel, but programs - call it commonly anyways. - Most other reasons are not valid. */ -#define IGNORE_IOCTL(cmd) COMPATIBLE_IOCTL(cmd) - static unsigned int ioctl_pointer[] = { -/* compatible ioctls first */ /* Little t */ COMPATIBLE_IOCTL(TIOCOUTQ) /* Little f */ @@ -351,25 +336,9 @@ COMPATIBLE_IOCTL(SCSI_IOCTL_SEND_COMMAND) COMPATIBLE_IOCTL(SCSI_IOCTL_PROBE_HOST) COMPATIBLE_IOCTL(SCSI_IOCTL_GET_PCI) #endif -/* Big V (don't complain on serial console) */ -IGNORE_IOCTL(VT_OPENQRY) -IGNORE_IOCTL(VT_GETMODE) -/* - * These two are only for the sbus rtc driver, but - * hwclock tries them on every rtc device first when - * running on sparc. On other architectures the entries - * are useless but harmless. - */ -COMPATIBLE_IOCTL(_IOR('p', 20, int[7])) /* RTCGET */ -COMPATIBLE_IOCTL(_IOW('p', 21, int[7])) /* RTCSET */ /* Socket level stuff */ COMPATIBLE_IOCTL(FIOQSIZE) #ifdef CONFIG_BLOCK -/* md calls this on random blockdevs */ -IGNORE_IOCTL(RAID_VERSION) -/* qemu/qemu-img might call these two on plain files for probing */ -IGNORE_IOCTL(CDROM_DRIVE_STATUS) -IGNORE_IOCTL(FDGETPRM32) /* SG stuff */ COMPATIBLE_IOCTL(SG_SET_TIMEOUT) COMPATIBLE_IOCTL(SG_GET_TIMEOUT) @@ -428,31 +397,6 @@ COMPATIBLE_IOCTL(JSIOCGVERSION) COMPATIBLE_IOCTL(JSIOCGAXES) COMPATIBLE_IOCTL(JSIOCGBUTTONS) COMPATIBLE_IOCTL(JSIOCGNAME(0)) - -/* fat 'r' ioctls. These are handled by fat with ->compat_ioctl, - but we don't want warnings on other file systems. So declare - them as compatible here. */ -#define VFAT_IOCTL_READDIR_BOTH32 _IOR('r', 1, struct compat_dirent[2]) -#define VFAT_IOCTL_READDIR_SHORT32 _IOR('r', 2, struct compat_dirent[2]) - -IGNORE_IOCTL(VFAT_IOCTL_READDIR_BOTH32) -IGNORE_IOCTL(VFAT_IOCTL_READDIR_SHORT32) - -#ifdef CONFIG_SPARC -/* Sparc framebuffers, handled in sbusfb_compat_ioctl() */ -IGNORE_IOCTL(FBIOGTYPE) -IGNORE_IOCTL(FBIOSATTR) -IGNORE_IOCTL(FBIOGATTR) -IGNORE_IOCTL(FBIOSVIDEO) -IGNORE_IOCTL(FBIOGVIDEO) -IGNORE_IOCTL(FBIOSCURPOS) -IGNORE_IOCTL(FBIOGCURPOS) -IGNORE_IOCTL(FBIOGCURMAX) -IGNORE_IOCTL(FBIOPUTCMAP32) -IGNORE_IOCTL(FBIOGETCMAP32) -IGNORE_IOCTL(FBIOSCURSOR32) -IGNORE_IOCTL(FBIOGCURSOR32) -#endif }; /* From patchwork Tue Apr 16 20:28:07 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162375 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661583jan; Tue, 16 Apr 2019 13:29:00 -0700 (PDT) X-Google-Smtp-Source: APXvYqyV4AOMLXc+onebzC/OqF0stR13uCrOorBTydb3La+8p4imj+URr3RH/nraTCAys42wdowI X-Received: by 2002:a17:902:2bc9:: with SMTP id l67mr67290829plb.237.1555446540231; Tue, 16 Apr 2019 13:29:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446540; cv=none; d=google.com; s=arc-20160816; b=yraJ5sIs53x5xWRDOchQJDDp8Uxj3iauUy61InhjVEFsutdP6L/bPIdI7HLbbxPxZb HsWtmuX073uYlzLQkeOufWqBdQ6m6zLYuA2WTiIlPHgXEeOv+eNPTKYl2+j3jrQNQYS0 GIse1aU5vr+stmL7aXDtwVLSCyKAzOh04wZis7bbg7eMSEOoNkOpa9xmQdNxSikjpTs1 T5bT+ZY8Nu14PhHTlEVP5DRF9SPWg2jMrN2ix/LR0UR50Br5uQDBmqh5WJpA4714lh9u vg5nAqSseiYBKrwDGep+lJKo46/qOKGHEKwrv0yJqEJw6raNXjexUvQsJcVmpLUOeYko CeXA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=66JXeRJ4HqQw42WAqbdaSCSYnixkO+X66BXAMiXdv4Y=; b=XUZrbRerTs4XrO7spOf7OWt2vzUJHYLcFgrWyI2B8y0RQxWqN4Adju79QcHDWlJzQt 9ok2IByN2IKgUtehrwBJdR6oZLc+/BF+Vx7MMBJHOIGL12qIc1GpFuPRj5LS4b4vjbUS vZrO5bYvXLZTNNMzuuJ/KZ1fuJG2pFg6PtpAeAnM1xGJ9jFipp6IvgE6ff8BNoJ8ypdm zxjyRqDW7wzIHWynNZcqdKUuDHbbN7UMbVnEX7k0pW1UJbrxYMzf8B8xuLL4xBWFYF2o qgq2Dw7Lj1xIKliQB3GtxOGApIMiegSTnbyqxheLeXOmv7KRkgM3RihwCumv6OFe7Oiq 688w== 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 l11si43578423pgg.554.2019.04.16.13.28.59; Tue, 16 Apr 2019 13:29:00 -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 S1730871AbfDPU26 (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:58 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:43345 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730804AbfDPU2x (ORCPT ); Tue, 16 Apr 2019 16:28:53 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mbzhv-1giFg71QTf-00dao0; Tue, 16 Apr 2019 22:28:48 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann , Greg Kroah-Hartman , "Theodore Ts'o" Subject: [PATCH v3 22/26] compat_ioctl: remove /dev/random commands Date: Tue, 16 Apr 2019 22:28:07 +0200 Message-Id: <20190416202839.248216-3-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:jA89eqKnRPmlOtnlgpKIzUdW+gr3sTm2sk1VYxigi/oVU0N+G51 0yLOK85iHW8gxA8PYZiCGw8y/mYMEGZXPu0hhwB/nJ7lk40rQeu99bZ+GnYqZROIRSDnj5G DuFwuOB+9o2MaekeHCiHSGB462Rhu0iMTrViAbpxpib4GwudUebC6fEEeM6OPZ+MaDFcUt4 wPXTUJTIzS5je+gbuQyzA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:CHYFpmqHt7I=:IW5eUkhGK4i+y9MkToJnzi wbKi29WpRLt+kIO9iXBAUUBx1iJ1WywiCib18wfeMU4W9cjY4ZQpfjmFs3y8fRjTw4ZvEJktT fWVJ9BUklJJ6sO4uCCo7b33pEAeOTJ17ZeJjADc+a6n3lw10DutWFVJkNTiHglIW9tkV8IrMT p9wL/CHrYlFN1K9pJwiZKPOGyaSdsbKCIBElAXjNIQ/JuCJRF5p7pf5u4KSszUAqV1jThifSm YshwVhwVTj7ZtK0p7bVsjQ3DARc2CQD5Aklu9x4/4EOKmbAQuRSMzITpRrg391Ar3CGCJUr1x xVFLE1SdoUaegHSb2ics8kqh83q3GSsAZhThmyqUa2NU4qzmHL82z0I4E7NCSqc3tNcW12225 ydkTLOAdh6fIBhBvesE225gMv+2QFtlryTKzYBrKc2/U1WEMLfMp8gXKrRNXvxk6Xr99fjmY8 TkETFcV3362QHhVMy45weAKDImPujFkFnShbvhGbRK2WIndhNhBvreSUi6KbpmpTv8Wy4YI0t VeGtW6TuG/QI2+2nPn8TRAcnWXGPtuydquHDBcWIgs43hsALWLhlsEcjO+DelsRZ6pyPC1PDG /pTqjFOx4gvWo0KAJqQ/psJ7T7yWABp/IYfNmnB4igb5uCvO7PHU0gXqkBmVK0TZ2wavgO4eJ 1OrLkVhwKSZog+g5rP+8GTmR8+AjndhIeNq3Jk+YBdiSD6CPG7oeRAxv5ty9kK0FGiUp0LIjt nXw+upVecaRMNlkqVuUZbrkKaCjs+DoBv0IhNA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org These are all handled by the random driver, so instead of listing each ioctl, we can just use the same function to deal with both native and compat commands. Acked-by: Greg Kroah-Hartman Signed-off-by: Arnd Bergmann --- drivers/char/random.c | 1 + fs/compat_ioctl.c | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) -- 2.20.0 diff --git a/drivers/char/random.c b/drivers/char/random.c index 38c6d1af6d1c..4f397c70d89b 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -2025,6 +2025,7 @@ const struct file_operations random_fops = { .write = random_write, .poll = random_poll, .unlocked_ioctl = random_ioctl, + .compat_ioctl = compat_ptr_ioctl, .fasync = random_fasync, .llseek = noop_llseek, }; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index bae7b38a881f..78144a599f36 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -380,13 +380,6 @@ COMPATIBLE_IOCTL(WDIOC_SETTIMEOUT) COMPATIBLE_IOCTL(WDIOC_GETTIMEOUT) COMPATIBLE_IOCTL(WDIOC_SETPRETIMEOUT) COMPATIBLE_IOCTL(WDIOC_GETPRETIMEOUT) -/* Big R */ -COMPATIBLE_IOCTL(RNDGETENTCNT) -COMPATIBLE_IOCTL(RNDADDTOENTCNT) -COMPATIBLE_IOCTL(RNDGETPOOL) -COMPATIBLE_IOCTL(RNDADDENTROPY) -COMPATIBLE_IOCTL(RNDZAPENTCNT) -COMPATIBLE_IOCTL(RNDCLEARPOOL) /* Misc. */ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) From patchwork Tue Apr 16 20:28:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162379 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4662101jan; Tue, 16 Apr 2019 13:29:25 -0700 (PDT) X-Google-Smtp-Source: APXvYqw8SJVuHn2WcsYEOyAIazHNNBUMA62YHw21O+kpll8eoMwG/glNmGGX/G8QtSv1r2KUaJkE X-Received: by 2002:a65:4802:: with SMTP id h2mr73138900pgs.98.1555446565241; Tue, 16 Apr 2019 13:29:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446565; cv=none; d=google.com; s=arc-20160816; b=M0W6GfxWUtMQ1XCF4fzf4CHpHYRzo4h2Yvz1HlLrUEUGde2/X/4KrGMNihRHKKZoAJ eIqvK0ldxX8AHK0lLHWjDEBMBJ0Fjp9c4gJ8Y/6xoAri1Kcrt8L4uIIEJhrVL3kZYNo5 oHMJv2oHAwKXsW967ndKiIhgnO2rNq0hBwYmPcBWcZHxIOm1Iq/jGmLQqJy3G60ZXzUz rjUGHNQVKaXuFXxjaI23PClT3VLu3JUJdOFSRzpSgDKspTQ4GV+bsvu9+M/fQcXskNhm SXuTcM/XQmglofsS5C6QIpmWJGYIsrGM2xWuCEtQ/qg46lom4fNmoVjmXSS8dhHYik9v 9tlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=29EdcudkPIirpeT9Wp23gejH7FPT3e6a1C6ttdo870w=; b=zsCTzoYv15u4mBtOhrCiQWHK6sykAhbiVf+0KIq//DvM9Rjh/4hdDrz63Vl6bU2AyD s2F0AUWTa6OEA3ASC9PoiZ/J+wa/KZRIiES1eQmkVQOGqUifuHmfyCL9RzpIQRlC9FsG 2Y4yjr7WBD7nN2IDleVtk9d/gdTVYnbQ5lsuB5Q2okUpgW7Y90VDrDkHcflMroiaExcE yBD2goo9Sf8CFvKGsFAcp6dgtRuhMu65NakKW0cPkRWE+nHGtCYQuxs20Q1u0WaqUZ2p iERQV2YIBmqzpj//bEZPrK63CLpsAX6Xkd950Xs0eLyQ+gAWHSJlkw252LO+TzuR10Zn c+pw== 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 k193si30029946pge.150.2019.04.16.13.29.24; Tue, 16 Apr 2019 13:29:25 -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 S1729348AbfDPU3X (ORCPT + 30 others); Tue, 16 Apr 2019 16:29:23 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:44315 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729301AbfDPU2v (ORCPT ); Tue, 16 Apr 2019 16:28:51 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mvs2R-1gxjE516Rj-00sujc; Tue, 16 Apr 2019 22:28:50 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 23/26] compat_ioctl: remove joystick ioctl translation Date: Tue, 16 Apr 2019 22:28:08 +0200 Message-Id: <20190416202839.248216-4-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:r/Kb0i7Xy4vPnTn9s9xCcx5+ALl9dBVzlDy54xW8f3JVJ3ISv41 zEfpwzdiyswKT1Wup9cHCIluvMfJqTfayVFRHd7vywa7fSy1rmEA7zPpgUBXOgrI0rA+LpH XrKRf6bZDuu0nK9g1QXZt/fzAtZPF7Y7/Xbil3vMeXshDT4geNJ5s5ZC5NvySEmZ7mRkjNR HJWlj05mi6cKjtrxnqNVg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:yOBQTyQlcKM=:2GNN2dLKkkYRv+oCpIpnZA mzYvUTB4lKqbmJWWPSt37Y3/ulzBQETnvS05gQwKATOwpK2ZdhsSDc1KxS8iUXqVLJvGbI5/l Cf2KVjcFl7tYsW5vPDCPEh62SrBgnQg93oijlZ5TUiLxdQC8kz/RiMm1Dax5/PtfSCKJBTK6r VUluEJZJ6A+ZNeFdFqKAPbbUzjPfKBUPB2dDxkPZppQuhvPC6PrLETwGj/KOm63tKKyhNl+pT SuyAMIgiyPHU9Fai07ENDwYY8Dot8SglYE2g7Bx2rErb/FpPAcsGDXthhzSkcLNII/nazwpXM PWJxbNtGL4uL3yg02k9vaxNDpg8EXd8vrCsVM7GAlmOkCoyPfr07udF7t7P9JxQ3P3uyKuqR0 UueNdDeSeuxT8aqXUo4Oxt3HgRkyO7gmxM0+aIoDjwon+eFKkc6SNz0GRuRuAx2OSswOh+zx9 neGBvqf2QZxul2wFC9F7N8jD/ZhL/520eNtLiIngess+rqdfi6RUrqYG/yoXxwYFKdzYZzA73 KIviVSExcdWnWB+Rn+FFESurSeCsCWA+xNvuHu822E/H3gXJztWq2gtKNQ3hSto6XA8vPpwap 5+CgO1B6cAzJxcMZwULvPKSG2j7JQOog4x1DfrMezg/Fnp4M8FSYaMue0c++NCvgwShq3rt5W aWMvPJHU0v510sMOojQupmQ9T8L0bAK7P1l18Mbj5mwPMjyOVgFU8GyJZVYrtiWHmC8vwn1pK PlCPRFuqlh2B9FHxztNSmjwx79kATiSa87ApCA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The joystick driver already handles these just fine, so the entries in the table are not needed any more. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 7 ------- 1 file changed, 7 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 78144a599f36..c81f5241664e 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -11,8 +11,6 @@ * ioctls. */ -#include - #include #include #include @@ -385,11 +383,6 @@ COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_MEM) COMPATIBLE_IOCTL(PCIIOC_WRITE_COMBINE) -/* joystick */ -COMPATIBLE_IOCTL(JSIOCGVERSION) -COMPATIBLE_IOCTL(JSIOCGAXES) -COMPATIBLE_IOCTL(JSIOCGBUTTONS) -COMPATIBLE_IOCTL(JSIOCGNAME(0)) }; /* From patchwork Tue Apr 16 20:28:09 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162374 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661555jan; Tue, 16 Apr 2019 13:28:57 -0700 (PDT) X-Google-Smtp-Source: APXvYqxdwXdgkhkLC1wNC0hpCLaJ640YRdYNVwo7cmxdxxmYh+zKiLgtnGK/ml4xvJvKrFnadOcl X-Received: by 2002:a17:902:8d97:: with SMTP id v23mr50381124plo.298.1555446537613; Tue, 16 Apr 2019 13:28:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446537; cv=none; d=google.com; s=arc-20160816; b=MW1WwJACraqCsrZkaIMlktkMzTDyISTbGyIhdhiVU+Z4i5c0U0C8VZTzoRo5FBLmtB +4vG1/3wtpvbCT+0MuQYRsZEoA52V/gyrmSVMTi/VqhJpRzFhuUYSzZHD1GhxCro4a3i ETCTS4scE8XhDXdxd1DFWv+CMfFmpGfkPQEluUymtpvVfU9/CxsnDSfQFPsVoP7vWfwn m6yOr/gxvWNWSuMcBLabAwsVYXkVJEWRrQl6SHX1GBVTXSFCoJFdCyxIifkyYJm7V2xI Xp3xo42LIFEGmPHhyL/aXbXz3yiTls+0j70egYamIpGnA6rviHLxqs3k44FjdSLT2oUe cVMA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=8zjWXAdqj6JzaP5yHoBBBCSEyQkMeYE+a5ws8YP9nmc=; b=XYN2woHX7Fz26nx1+oC4h9vrZXyDf4wqdQXYRN+4C5pBWmxvn8emRr/Qw5KXjn3NTs rGeAmdaGwjBPEkjhnKdmp4cZ2huJIFJ7t9f4Jbi4ZnBxZk6riBD+ayA/dh70d8v/HN6o /M03tnKA/c964a7K32AtKsfXfdHsO62bd8l+WzKmsyaUTyu0/Ud7kWWXCjlRGsQ3TXqy reOjs416Vq+dsd8/W5sJ5fMAOj5aWRtNZggX4zOcOaToh9unnnth27M8b/AxTpNFxEkg lo3uHqKBQUNRz1BJ8+2RcnrwlZtmYwJQ7y9fn03kTw1aZvuQD+EG/MlDdSt6mmvYgz+Q af7A== 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 l11si43578423pgg.554.2019.04.16.13.28.57; Tue, 16 Apr 2019 13:28:57 -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 S1730849AbfDPU2z (ORCPT + 30 others); Tue, 16 Apr 2019 16:28:55 -0400 Received: from mout.kundenserver.de ([212.227.126.131]:41015 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730806AbfDPU2y (ORCPT ); Tue, 16 Apr 2019 16:28:54 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MqbDs-1gUBSm1HMW-00mbc3; Tue, 16 Apr 2019 22:28:52 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 24/26] compat_ioctl: remove PCI ioctl translation Date: Tue, 16 Apr 2019 22:28:09 +0200 Message-Id: <20190416202839.248216-5-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:3ZKT++MKOIaWAeFxH+phaFXpicA/O7Jg3lc+FQWy7v5x3aALBYl on9zEz0cKj54B1M7rhKFh1IRYSiYTeFR9V3WBrM/vzpq42+fMf2rXxPyCVxIWCokSpZpHn1 x9rjhyKneDSQxQd62jBRag6wXhh+yAgjn5at16tByeIptIGlgDkaoBjMB/Vi+6Zacrgohtv ETUfeFUEStG/uJ2J/vdlA== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:45TbWo2gyQg=:M4QrgOdibQp9Wss+0Ojs+h q8WNaqRjebl+99dZRsYoIPhmSn1WPeyB/2YoIPbzbMuiHnrMoXi/zC6YpadBqNqR8cUWhBt2V 860vywT7OHfWu5WLDQo/fIp1NnI6oKyVZZQW0ZAKqyXM5BhyNV7OnpO+CO2vaQ1mUel5UDrm2 pcjtBKnITHUmL5RRUw3mhs1QLygNkPiPMb3lxkQMyqU8WC79xC9E8h4S20LUM6fd7qCccBWf1 vDj9dGlZdB+Nlgij4dM+elWzb2SMU/QE1nQzlLpj0yh+vHOH0HPZa1wKbbECklMYvS1DwQHLw Y+Q/w0kQbPqPbQo9lUTQ7RFopUPKWsFFjku78XEPcuSLWVBjHyNPC9JBgDtwUcRM2XljN8dpl gwhwlMsWFybA2Af67StQe3esH8cVAsN+AtYG8pTh/+uXFrh2Dx/IqOyP8r7Gz6vVGnXmdc7Fu HJUrZ3S7iy/nh3eUYtfzKVJBmjSNwytKejW31w4zxeWcgtlu1BY1kq7f1Knwv2y4iRbb0AdY3 xii+cE8lQuvD+oT7RXdWF0XHchfB7vclYu+ZJrzQthlh4at+SFef8ACqeWkQWvuYej/1Lm8wk f2qa0SSUGF+BYiZr6gRU75CKXHFCKP2rOO3iJ+NJmpTMfWH+rFF3YWov//nlV4lH2uTBfX0qd sc383qhnqLmGLMwmBPwpG4WJagonvuJLymOoMekjYzMMjLweAgJcfrmq7ePBoD148EIAKJLF9 R2anTVQzFLfcwUENhzcaugdCbjdDl/fmg/RVog== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The /proc/pci/ implementation already handles these just fine, so the entries in the table are not needed any more. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 6 ------ 1 file changed, 6 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index c81f5241664e..6ad45550b4b1 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include @@ -378,11 +377,6 @@ COMPATIBLE_IOCTL(WDIOC_SETTIMEOUT) COMPATIBLE_IOCTL(WDIOC_GETTIMEOUT) COMPATIBLE_IOCTL(WDIOC_SETPRETIMEOUT) COMPATIBLE_IOCTL(WDIOC_GETPRETIMEOUT) -/* Misc. */ -COMPATIBLE_IOCTL(PCIIOC_CONTROLLER) -COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_IO) -COMPATIBLE_IOCTL(PCIIOC_MMAP_IS_MEM) -COMPATIBLE_IOCTL(PCIIOC_WRITE_COMBINE) }; /* From patchwork Tue Apr 16 20:28:10 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162377 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661780jan; Tue, 16 Apr 2019 13:29:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqyy+B/w4md572TZDhXac9ZdZi2vZbnvMNDyeA64rFQjug/LT77qxggaRAm9QLZUpHiG28rc X-Received: by 2002:a63:195e:: with SMTP id 30mr78040740pgz.312.1555446550426; Tue, 16 Apr 2019 13:29:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446550; cv=none; d=google.com; s=arc-20160816; b=ASdUikCSor6/PJOZu5z+orDZbWa1UkABfCqBAg8TrmNFR8KDfFTziZ6zgywgMqtRf9 l7xTBIxI0DGobD3W74dPchAiszEI08jXA2/QY/mkg/2wSW4YLje0waaJ6wHxb7kOnPcY ICeYMrYbqRkDjaLvongquGPtUrFskDigMb4x+JZaqU7gj4uoI4DCYkmGpkTkr0n86XmI v6nyeOF0pm2i+kWVPJIWqLk/bqFWt+FpPxymU3hwotGmVLWgSsYx6xNDcHLJJy4Eb06K TimwUZhzRasLgwel64QH2TKvWTycto7rc6eT0vM0QXG7XiPaf2Tn70nW9Yi7UTAPfhIB n5nA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=CO39L8j6trBPmoB7xRs2q3Jc3PmlZlp33H7e8VADE84=; b=0lI+B1Dtg7rNtSXmo2rKbFn4/W+b+Y8ttSKZJU4dEt6XEYylyeihrMO143PD7UBWbb R/WnY6GQ1UrhnzZDkfLmJDmwteCazt+c5Sa5W2EZCug5BlBQqLcvyjqCJnmXPTW9v0kL 2tvZVZM50mEhi5dZiOMreqReNSINqlLG7xtg0MVQT3Z6IVmYk8X78SyVLYG9Ui2tvv8l 4N3/4ESk5au20yQKlabBEybfrLS3nPF5T7Wgi8yweK3ZmrOd/cZavhnlL5t7wFHlFACN +z1iWn9wUan6nmGp91ZbJky25oX00FyKft+NhQ8EPs16ziV/C7umbbfGEfEVQWoIxy3w axWw== 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 i19si31819979pfr.246.2019.04.16.13.29.10; Tue, 16 Apr 2019 13:29:10 -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 S1730925AbfDPU3J (ORCPT + 30 others); Tue, 16 Apr 2019 16:29:09 -0400 Received: from mout.kundenserver.de ([212.227.126.134]:53459 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730848AbfDPU24 (ORCPT ); Tue, 16 Apr 2019 16:28:56 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MVv8f-1hOVTH1lqP-00RnRe; Tue, 16 Apr 2019 22:28:54 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 25/26] compat_ioctl: remove /dev/raw ioctl translation Date: Tue, 16 Apr 2019 22:28:10 +0200 Message-Id: <20190416202839.248216-6-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:NKIzQHvuacGsem/0YDjZ3Izh6l5C5RHpSzcw7X9OoSF6amjB0YN Rv4RXuFB9buqWJ4GsMEJQE+YxpgX8c1r+5XmCA5sxNENCibx9F2/boVq9R9nytEvRR1DChd GAqsPIVH+O5yK1QJbxmNC8VnQX2NhlBwa/clejshWUS09LL/kjkc80ee/jP+H+thdSWpdWF f2tFbVe+J8k4tQwLJOtpg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:5kUueMKFZno=:58w6mRrXu4tJlh6xNrUKvO Y74U2UcO9xkjcJAX4FpJCMVGz+otAYlcQ9FwVvy5Qhbh7l5BWde6fM0Ak3Qew15v0ovrIITVH jH6I9J4p/bK+Vi3LXQqz+zBxTExYYpO0VQJ7U/rBJT1JW0vrU2yRJjH45WrAsq8rMytlSYUk9 TIFVMwPxKwpDbFHV6YExRDoEfkQDlZvOjY+YVbaw34LT6BDpCej6zVH84xW6ocJkyMgqV6AfG FsGZZKLt/tQK64Q6f5XJOGhHQizJ8cVT7xK60wVUEbrgyfx+fku78IMwP4f39RgaqHl1IL4O3 YUvKQattficKKnhsH0Pv6468eDY5KwIKUQdCgA1EBzcSYW5ztYq4v8V6GrYa03tZZVs2F8l27 rVDt2PGh9xvzE94npPZJag1CAJWrLK6xty/QFoiAM1GvzbI9zfYVT41gFN1lEPl7ymbgQ/v9q e1uGxFnxiheSfq1krRUhNjL3aG3ITT0+J1wBcNQW4rJAun6onCo82iyuBpcOUWkNZ5tK90Zjl 9uNPiwtCNa9AR0KqySXOEcWvJfQ+qxftfYeDPCQwHmWstgi2BJdIesCzA+FTMXPYWSn0YgdU1 uZo4hwIyB77UNT3ncxwFjvXQ0bViRzhWjRF1zqKa7s9Ul+1VU4Mjkl1oQYYft1MiZzYX2+GvX FMFr681BwG/a85FS6b/mIl0zvYSDgTBrd+vX7QXdLn/QBsM3SULLHUjM5ySFxg6fPQ4WcaJeY yDPyARokE0O5S6NGzVBTvd9UMOUGyTb/qsssqg== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The /dev/rawX implementation already handles these just fine, so the entries in the table are not needed any more. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 4 ---- 1 file changed, 4 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 6ad45550b4b1..63de00cc85df 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -27,7 +27,6 @@ #include #include #include -#include #include #include #include @@ -363,9 +362,6 @@ COMPATIBLE_IOCTL(SG_GET_KEEP_ORPHAN) /* PPP stuff */ COMPATIBLE_IOCTL(PPPIOCGUNIT) COMPATIBLE_IOCTL(PPPIOCGCHAN) -/* Raw devices */ -COMPATIBLE_IOCTL(RAW_SETBIND) -COMPATIBLE_IOCTL(RAW_GETBIND) /* Watchdog */ COMPATIBLE_IOCTL(WDIOC_GETSUPPORT) COMPATIBLE_IOCTL(WDIOC_GETSTATUS) From patchwork Tue Apr 16 20:28:11 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 162376 Delivered-To: patch@linaro.org Received: by 2002:a02:c6d8:0:0:0:0:0 with SMTP id r24csp4661614jan; Tue, 16 Apr 2019 13:29:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqyfu6dK4+rf1AxZwunlIy6Gyd4EoRfLah8vixHUwMXGbyirRRV3e4DEn0XQZcf5auy4L1zR X-Received: by 2002:a17:902:820c:: with SMTP id x12mr85267263pln.199.1555446542433; Tue, 16 Apr 2019 13:29:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1555446542; cv=none; d=google.com; s=arc-20160816; b=vwiHcL/N+jzC7PZfHetE0M6aD+HiHu8j1wyUAeq+LafATfThfRmHF6MeBV2t222uWv s/p7C1bbpQC7dc6SmwFbsT+NX+ryaO6nzh+xvz19u2mhqyI6aKV5DcwgkENPxugrLRw9 cf0xr/RTHbncYKxZYzUfl1D0P/f2aqDrVnaO0uvJoX5hmq7fHEI2uM6aTQ8g2YBIBMAG 2YB5yADdvEIJt5+DK0PVLgHTzLscXupfJHEcAxG0AOrUXGFtrAP7PFYP7V34ifs90Vvt ugAeYyc5CDrkTD3p+LJRbCitILIjQ4Ji4AUJE1DMPiI4pRq05JBeAN8KAH13/qCcnSR/ aCwQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=YW3UShcOUJQuypo5jaExc9Z4ZklEt3OVdxmqDJzjNAo=; b=yYy7j6phqZYVYl4ba6bS2yTW3pvowINOZNnTE8DTAcWl+YAnjsgJczZNLx7Esd75na CUXyRiZvXppbAFYnfpUwD9lZIoi2IxFBgRlyc3/cbVXYaPHcOIb6T0NILU3hTvGzb1r0 Hcnwk+4QFMX8Zq4g+U6sFxvzofDywFgUbGLr9c+/gcpE0dP7FN2bPYxXkjMaIehgNYJL zcti8oHmsimrbBxlPHOJ9UXaQ54hNtGNoaZiwXjxCayflbDKwzKt9zHEaSgb370Znvon x2+rX9CI+Dsu+UDVpUovgxjMXxPTsgZbksrlQu8wgcrJLXnPiVeRH9rlv4WnJFkxqXza +zwA== 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 p3si48250379plr.45.2019.04.16.13.29.02; Tue, 16 Apr 2019 13:29:02 -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 S1730897AbfDPU3B (ORCPT + 30 others); Tue, 16 Apr 2019 16:29:01 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:41833 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730866AbfDPU26 (ORCPT ); Tue, 16 Apr 2019 16:28:58 -0400 Received: from threadripper.lan ([149.172.19.189]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1N9MYu-1gkkwe3aUu-015EvX; Tue, 16 Apr 2019 22:28:56 +0200 From: Arnd Bergmann To: Alexander Viro Cc: linux-fsdevel@vger.kernel.org, y2038@lists.linaro.org, linux-kernel@vger.kernel.org, Arnd Bergmann Subject: [PATCH v3 26/26] compat_ioctl: remove last RAID handling code Date: Tue, 16 Apr 2019 22:28:11 +0200 Message-Id: <20190416202839.248216-7-arnd@arndb.de> X-Mailer: git-send-email 2.20.0 In-Reply-To: <20190416202839.248216-1-arnd@arndb.de> References: <20190416202013.4034148-1-arnd@arndb.de> <20190416202839.248216-1-arnd@arndb.de> MIME-Version: 1.0 X-Provags-ID: V03:K1:kr37GgGf+FAvlT+Ih2yyYppWJzyd/T1IQq+sLtn8CWkKCuJB+ij t97YwUJguLn7fO+Zf/mVSeKYHREnqFvby2c7c6IXVZKxbaS8DDfMooioaV+RL6PmOTQVCHq tacD6C/ufvXWISqaCW1G7KJd5YRWhQN6QbHYvoRL3jyRJv6PlFkAOxHQill0qp/PkF+Bksa OgEQSEGZKEJhaQRrMYxSQ== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1; V03:K0:2Xx3458CozM=:XO71Q29thOiOAQO99iAITx l2IGPASdz//mh80V+XhBLN621DKXjYp+XM3OZsFtQb6ZZIH6eJOGOqbkRLqzZfwE4bQONDqRl QCiuyirtlX79abZ/cipVNyKhKOuYXK9w1No19Bu41FAzEiPd2uMpCk1xn4YHno4Wrp2t24PRq VYqOkIcj2wdCroQrCaG+nrtaXc/SRYJaCphRUoC6KS6q40RKNJwhMoOFHFaPEKlErKxBLHuej sOYRewgvOu/OKW5XconPDWRZSkKGyQDEK4In9x1WQB1sz/HJZpKQPAqXtmbRjoC1ilLzx8ASn ZnCj3tl+DK4ve8vLuGd7QHn3SI8a/jyDJqmubRmzNdYjGnLQl5QoZ5LSUHFLXYHCzf8Yba4Nk ePCNE0rPiI1Mwf0KD8X856s41h1fh4GRoQXVRfhGWCW7xsLrZLrq6NtlB17T7KOibwr8khooK kHi9vlmS31z8PiUaVDdZt0uRV163VxXPsWpsrI/vDKI+QhjYOqwmZ1lwv6ORgUUHKuktN1nS2 A3Oq6k0nfil5cLpGlZxGW2lpWjpLG1te2mhW/Hp0LE31nmhgln2MuUV3d9LR+G7yhMkq4iJSM 0moPEoSgI+6Pg2cgU5Y28qdQEEs/WnvkOsNTqgyHpAKd2QmkzxFgAEbgkMMGBRtgCzZml6JsG t9mtSIzfuktyYOPTdgICO758slYUXYA2boXcDp++xCkpD7zOx8IvfU6LvGBlF+FyNlz4GsSCd 6uSKeMooEH516yYNrdU2kimgp95z1VnfEG4XlA== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit aa98aa31987a ("md: move compat_ioctl handling into md.c") already removed the COMPATIBLE_IOCTL() table entries and added a complete implementation, but a few lines got left behind and should also be removed here. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 13 ------------- 1 file changed, 13 deletions(-) -- 2.20.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 63de00cc85df..09f42e0585b7 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -394,19 +394,6 @@ static long do_ioctl_trans(unsigned int cmd, #endif } - /* - * These take an integer instead of a pointer as 'arg', - * so we must not do a compat_ptr() translation. - */ - switch (cmd) { - /* RAID */ - case HOT_REMOVE_DISK: - case HOT_ADD_DISK: - case SET_DISK_FAULTY: - case SET_BITMAP_FILE: - return vfs_ioctl(file, cmd, arg); - } - return -ENOIOCTLCMD; }