From patchwork Wed Sep 12 15:01:02 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146567 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4931287ljw; Wed, 12 Sep 2018 08:02:18 -0700 (PDT) X-Google-Smtp-Source: ANB0VdaDZ6E3AjrBclTlbAWeItD1iiRPZZsoAyK6CfBxaRrD6nY6UqGPwIsAs+dWD4SSxECS2swh X-Received: by 2002:a63:e4b:: with SMTP id 11-v6mr2819657pgo.320.1536764538399; Wed, 12 Sep 2018 08:02:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536764538; cv=none; d=google.com; s=arc-20160816; b=dnl2kTLkje7lE4sjcqBSs+dU9a72Xt1m4mc6uwteQIbiTquZg415PEDqdKLvS1H1u3 alHtljZNDZSPqLbXZZv6Da/SP+AQTbSpmib9H2yI7D/n4u4onceAdwz3M9vU86D35HzG mRgrjFiE6ymxMSN86T94ObzRBZ9aBkKMeo5m3vnrsCSrLIXJVK+KyGmzsYJMDPfqXgxt v4oRv+S0HyhFqpgZRLahO7doNbI+wfIVJriGvlTbZMuqFQz7xWH1e702g79fiLlEK9gs nOxP6Do4hFT85Srl6O5Wz2CBwOn5gh1wU0QE/IET6225fSfmPvr6qoGMxuvtmlN90wM4 txkw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=x9FbuAIMEI2OIRpwDQ8JVswWlz8K8p1NnEgiEWt+bBk=; b=VfVR8Q1k9fNGn09rTzIZjLZ94jYARSdzl9yruO8BRMe/JoAssJS4wpl+QZP4aB0OUa vcqhhQ02NCqhA13o+5juNAilYWg8cabNWNgrFWShDIZpOZNwFG7MlbkQntjECD/0rUrr e9+N4ELnQPjJyCqkfFItdTlDhpV547oqQfxyyBJ2HSpDe7cvq06ihnF1QTOjLrIrRT7w Lf7ppuPZSm4gFz1+qcorhFVfOrztAynRYFIHOv1Z576lPU0r1sZFnw9ps6fgXf3/8vtp T7rGIdpTTVX9voMq1o0xb9A6g4gRmsjh9W9INicfsldJa1ataSvU0zEjpDC1P9/fUHU7 3KCg== 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 k2-v6si1162087pgp.602.2018.09.12.08.02.17; Wed, 12 Sep 2018 08:02:18 -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 S1728225AbeILUHJ (ORCPT + 32 others); Wed, 12 Sep 2018 16:07:09 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:52626 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727804AbeILUHI (ORCPT ); Wed, 12 Sep 2018 16:07:08 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue002 [212.227.15.129]) with ESMTPA (Nemesis) id 0MHfXI-1fz0Bb1MVw-003Iuh; Wed, 12 Sep 2018 17:01:47 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 01/17] compat_ioctl: add generic_compat_ioctl_ptrarg() Date: Wed, 12 Sep 2018 17:01:02 +0200 Message-Id: <20180912150142.157913-1-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 X-Provags-ID: V03:K1:wz6vo7KIM91kt111ot1ATETat4nUfGMJb8FLy77lzIOkc5wfyKu wZ0kYboXWyxsU5awQ3oUor82AlfAk3f/J5do+S5nfBJ3NEq3BC0adeGjkRg7oKf9xNDEut+ G3FwLM38ozOo3reZvfH6A0GecwDdx0aFfDjei3/mnJfoAnAYXWrLzMYPVK1RiOrbUWIXLNr HK0bIJ/e46ESuPiBdwWoA== X-UI-Out-Filterresults: notjunk:1; V01:K0:aeLDAMsSyZE=:TVJ+SS9XztZ8PspfoWbgn/ QNGobgx/T3o6iRMkQ3R0C7VYzxGUQaCkU5TKbbUzzcePfqFWWa/LkJEtrcf0mBBN2sh9GZ6UO B9aiG2BtIaOs2ABbhYn9UurSrwk7wF21ZFJSz9Vw6sHR7Vh/nni9/XqVCaFqj3lhNtwIrXIbi scBywI3tltnx7LSQ55lcGl3TaKa94zB6Iu8ct08cbFy6wuzvFgWnw+3KF5Hr1/vex8+JEhuYe fPO66u961mjnEJLXTfE8e8gCuU0twUPBBp+VP42gRGBzoLI+jo1ge4BcgYdATtwND7qjsfR6G xXyJfCbYx/wM9QnOfoOUjC3UcCKe8hwUgpg8eHLCz5ZMxfjhjANZRgGEDL2OlFDNKWcI5gNsx uLl/OFqG/+3Fk5DOnFWC9Nnf0fWXJCJnYHRzoJ/Yi51o1RGHIxEyUmgywAmboS4zo7+NLHBMs 1uMFkDA4Wh+gRsF8fVMZ9wLNItKcISagcEFdgyaAISXgWPzHGMuMepzUYU1rfongDROfjJqIO UqpWXHDWAi4tmqX+0xU/RJNdbX6KxlPiePnRHcSSGsR6wDSKoXB7DrNBuvu38Q6xQzByqzooc Oma7aA+m3VDKkLZ8nnTW3ZHZ1dG0uGy2fK0qmMtb5uVzfLBNxH5OJNEy31SX5I9ngKmGSKfMt tzcmXYpqgCXAVsOVBqzBA9MhfmifdHfENpWA62tuFN5bgATU5l2YCe/h31cVpmhv0cUY= 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=generic_compat_ioctl_ptrarg" 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 --- fs/compat_ioctl.c | 10 ++++++++++ include/linux/fs.h | 7 +++++++ 2 files changed, 17 insertions(+) -- 2.18.0 Reviewed-by: Jason Gunthorpe Acked-by: Greg Kroah-Hartman Acked-by: Greg Kroah-Hartman Reviewed-by: Takashi Iwai Acked-by: Darren Hart (VMware) diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index a9b00942e87d..2d7c7e149083 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -122,6 +122,16 @@ get_user(val, srcptr) || put_user(val, dstptr); \ }) +/* helper function to avoid trivial compat_ioctl() implementations */ +long generic_compat_ioctl_ptrarg(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_GPL(generic_compat_ioctl_ptrarg); + static 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 33322702c910..18a90aa2dc93 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1643,6 +1643,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 generic_compat_ioctl_ptrarg(struct file *file, unsigned int cmd, + unsigned long arg); +#else +#define generic_compat_ioctl_ptrarg NULL +#endif + /* * VFS file helper functions. */ From patchwork Wed Sep 12 15:08:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146571 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4943776ljw; Wed, 12 Sep 2018 08:12:19 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZQ9RCngZoiCZ35TzBtPxExaVXXKQPJtKYRPjbmPx22VO3vd/Ao2tyu/1RSQBkCRQ9F8KkB X-Received: by 2002:a63:a012:: with SMTP id r18-v6mr2893203pge.166.1536765139112; Wed, 12 Sep 2018 08:12:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765139; cv=none; d=google.com; s=arc-20160816; b=RBUSgWDW+r3rENAxBQRcx+S+iVBjyKFKAh1pKK2MqnhWBA46YxK64C0lGBRnfhwJik k406py6fQ5rQV40vqhWeXT8PIHCWzjgNr0kMsiHpWjszkwIXKgDxV2h+OjdETjnBgaes leNNZfvtiurJVKhiVBde0FnrJ7MkmA+ZcYPwzTym9b618vtTAnUluvtXblS05BH+Z+n9 x8/HW6lVsr6lRg54HdtuP2YmUOa+DfZHYrzFP9QjxeD+o730n2KE1BkVUnVS5YClp51Y ptn4cwPJ7m3rx7nCvLjl4iLLR+vYWM6pi+eaNoiWBwaI7xUYTtzqkQGppyTF4W3vU+tr zA4w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=7Mw9hItVgWcQSwndKel5AxkDuK7e2KjH+SuZTQEWXwY=; b=RqzBNxOMdqqWVHr/Jg2EO39RaJQpZZsWemB/9J3wuFBRatp0wvRXgiZjU4ddAO5gE5 qjfTIsxH3QXAa3xRS6jISr9Ke/Vm+qXXnLNM1J6Hfv/n8m1j03x5g4K2AKzlNpRfCXoe sF3cA6nnhoe2bfx8Hti7sKL+NrFTkodglDIvfzUZ0obKfuZgFwwOwsZVNAui+O+E2ss+ hYGWV8ZZFUhVIvp9yoU3+rojcbq0VdVT9ZsijEzWUVK/9DzN81rfZkXLRLlXwhla26QJ cbHWrW4SRNsJ0FlBnSNOlt5hTTyY41P0HhaE6qA9UEQqlut/NOIe5/jdz2rnnLEWma/3 CvWQ== 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 b5-v6si1209548plz.485.2018.09.12.08.12.18; Wed, 12 Sep 2018 08:12: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 S1727645AbeILURM (ORCPT + 32 others); Wed, 12 Sep 2018 16:17:12 -0400 Received: from mout.kundenserver.de ([212.227.126.187]:60713 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726792AbeILURM (ORCPT ); Wed, 12 Sep 2018 16:17:12 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mq2za-1fVyyV40aQ-00n8nk; Wed, 12 Sep 2018 17:11:58 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , Alessandro Zummo , Alexandre Belloni , linux-rtc@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH v2 06/17] compat_ioctl: move rtc handling into rtc-dev.c Date: Wed, 12 Sep 2018 17:08:53 +0200 Message-Id: <20180912151134.436719-2-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> X-Provags-ID: V03:K1:/lDmWHltkb95roFyCi33jMAOL5Z83iacQMqJ17PWNKeiyo7FOBS Z3TAhJ9yX6UzLmqAMc3q8oDQPXFqhkjQawJCJUikgbE1PvTk21rfPLFSysvVNAm8Zrb3Pyc TOfACCM615podZrM7bc+udjNXiv3BYRAMex+nfGLJx1GjHxjN5M2JBt4WG2i94AoUGVh/h4 znb0Xl3wBL/bWhg/whjLA== X-UI-Out-Filterresults: notjunk:1; V01:K0:ORT8gnPtTQg=:6R29ukBK1Fc/CoZT/ybUOs KnsYdseCyuxAKww7QmTr7JdD+G2nuvveadpsvjJoP6hOtCZ5rjTEhQ+2euNePrWAc2l0XOIwc ceqDxmyFlnYaPFDyxHqKE+WCfZVd1hm+mEIjMXNWoZC38GuAQnwXzENcBlT2Ou1TyZx/86sjJ DKXlSpuS1FN7R4XAFTWQWfmZmLLSvNKFUgb7ZVW+y8677jLSY7/kTa2aa4xYmKR4ap2U4nE81 wlLM1n3wXnYhRUOU9y6z4/gbNwTHRRIO38TlF8yP2UXyVatIVQTJpAtgvRx/GfoagSQdBhTSh n/Ovaw6PKavcO0MdGyiM1sqCbICPDDRJC+fr/aduSf88jekdpEodB7E9gy+J/LIcfkCtUoGR/ 7YWyxsxbhae5RnMRvT/ejxNFYPQJgafJzWvupUKLbV6OCYUN0q8E85nzYp3Ea3Nka03Z+zMhb thPWs8Fkr8QoktkAHyc685xu4BhN2vw5lJEQ3KV/p/O0sg1Qo9RgY0m4wuPkfLbvt/WR7hthR Hh73i9dLPuZ7HcV4jlutwLr9hfa0iwfPbWEXBe7AJvPmylnOciHJx/PT/02ttSiJKmqrZKwrk SIFNH1EDKZED18aOh2csjCWcSm2gAfng9a7wdcTLUnPK/vnqFMDRy7ZYtxFDZGO8iLMmiiUz4 P0222qO9L+eIN6pY/fYeKb2gptotuULxrVzgmXkRR4KIsKbA6qM2wLnSC9+9XalFp1cM= 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 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. 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/rtc-dev.c | 13 +++++++++- drivers/rtc/rtc-vr41xx.c | 10 ++++++++ fs/compat_ioctl.c | 54 ---------------------------------------- 3 files changed, 22 insertions(+), 55 deletions(-) -- 2.18.0 Acked-by: Alexandre Belloni diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c index 43d962a9c210..ccd5b1795e20 100644 --- a/drivers/rtc/rtc-dev.c +++ b/drivers/rtc/rtc-dev.c @@ -13,6 +13,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt +#include #include #include #include @@ -364,10 +365,19 @@ static long rtc_dev_ioctl(struct file *file, mutex_unlock(&rtc->ops_lock); return rtc_update_irq_enable(rtc, 0); +#ifdef CONFIG_COMPAT +#define RTC_IRQP_SET32 _IOW('p', 0x0c, compat_ulong_t) +#define RTC_IRQP_READ32 _IOR('p', 0x0b, compat_ulong_t) + 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; @@ -439,6 +449,7 @@ static const struct file_operations rtc_dev_fops = { .read = rtc_dev_read, .poll = rtc_dev_poll, .unlocked_ioctl = rtc_dev_ioctl, + .compat_ioctl = generic_compat_ioctl_ptrarg, .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 70f013e692b0..1d90bde59d21 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, compat_ulong_t) +#define RTC_EPOCH_SET32 _IOW('p', 0x0e, compat_ulong_t) + static unsigned long epoch = 1970; /* Jan 1 1970 00:00:00 */ static DEFINE_SPINLOCK(rtc_lock); @@ -195,6 +200,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_COMPAT + 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 2d7c7e149083..312b52b4e974 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -46,7 +46,6 @@ #include #include #include -#include #include #include #include @@ -633,37 +632,6 @@ static int serial_struct_ioctl(struct file *file, return err; } -#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 { @@ -816,21 +784,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 @@ -1307,13 +1260,6 @@ static long do_ioctl_trans(unsigned int cmd, case TIOCGSERIAL: case TIOCSSERIAL: return serial_struct_ioctl(file, cmd, argp); - /* 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); - /* dvb */ case VIDEO_GET_EVENT: return do_video_get_event(file, cmd, argp); From patchwork Wed Sep 12 15:08:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146575 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4944850ljw; Wed, 12 Sep 2018 08:13:14 -0700 (PDT) X-Google-Smtp-Source: ANB0VdY36kEbUvHBnGuIEWJ6lJrs2p1DMn6lJyvqackBLMy/MWoN691N2ZTWTUInuZes2UuXgTNG X-Received: by 2002:a63:c608:: with SMTP id w8-v6mr2903553pgg.16.1536765194046; Wed, 12 Sep 2018 08:13:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765194; cv=none; d=google.com; s=arc-20160816; b=f+bkXQkmp4NYg9SGHqci6EdqllZxfWNZKoE9lZ4a2eLBvKAglvrO5kisQrNp334IV4 CWkFloxGk4UKDvAVfhPF6X877JgkZ5k3E+pugoRFN84x14cOpico8Q9XNTRzsW4XrBvX x3sVudR6BrRXUyZPmO/bIsq5GweVbd7EmI9ImOA2I9IFywftIn5mmxRC8lh4vH2LZFq7 Q6EwYw1Mu0r5fy50nGRxUWpD/z6PmW99KJ8k0UfGpppaUNxsOLNWbeNigfWIe1ZTJ2e8 y1RLkmu9MknjtOeiskTyMGaP/zRNdR1ys8vBINX/8OVW3fUrrHVA6HExjuZbQpho10YG E13Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=g/ibOOrGCutO6AtMdOnUU9kdhu5Icl+35ladc8c+zLs=; b=l35TrOujAMGmjIRsGqf2xJHalcqkss4iF83S5kwD8Rg6H6gUz16bQJeXyzsEbOdTKI 7cgtbAEwzTBZiOiIat4qilncY2Brs0x5ex7V4lY93k0DR2boT1Ljl13JqxcnslufPOS7 ufti+FlZRNVwnKnDJQkNdyVA0TPn9sS+W3kGF9ZLaghLAuQ+qFSZ/SwIisGa/YrLRRZh 7XfeWfq6vs5q1fZ1n5xvb/RPnL/1o7C/2Ry1ws0qYWgGrXf60ND/JTQIpVvKK0v+5zbs qQ7bYWHJrPvjMAWabe/ipzGbPkrFBZ+NIzHuE86d9F7jbWTVfa3Yac5YKp4x/GTrgsvJ WsAA== 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 d92-v6si1296642pld.75.2018.09.12.08.13.13; Wed, 12 Sep 2018 08:13:14 -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 S1727972AbeILUSI (ORCPT + 32 others); Wed, 12 Sep 2018 16:18:08 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:57195 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726640AbeILUSI (ORCPT ); Wed, 12 Sep 2018 16:18:08 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MVe1U-1gRdYC1zUq-00RbVq; Wed, 12 Sep 2018 17:12:40 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@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=C3=A4kisara?= , Jens Axboe , Hannes Reinecke , Colin Ian King , linux-kernel@vger.kernel.org, linux-ide@vger.kernel.org, linux-s390@vger.kernel.org, osst-users@lists.sourceforge.net, linux-scsi@vger.kernel.org Subject: [PATCH v2 07/17] compat_ioctl: move tape handling into drivers Date: Wed, 12 Sep 2018 17:08:54 +0200 Message-Id: <20180912151134.436719-3-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> X-Provags-ID: V03:K1:i56Pw4VpRHAg5aWOEQlJOlE0TfOG1FBk3IEAZwoExsLCDhFkpcS txo6GijmHkeF2e0nV9pQhY9U98oZxzQA/NhJmKsXpsBIMiQ7n7HtaSkAS3JeuvawyAbG6do 2/N8KPTbXzxSf8mNd+R00qgNv5CgKmZza1BDCS+dNHiK3BTdhtRbUH7v+WBnf+2XA9D0cqD clti4V3MmhWoRdQNd8xfQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:a/b2gOLBZmI=:s0sWutsHODiwjENbepCHWv lO6TIvLD0HTGC5wz4USUJnkXlUxSyCaKGO0FZVYmjYuEqWc3vhWZansMr+u42Xd1MUUMh6PhB 9/Ek0jxRc4Vw1troIKKf//HLUGpcmjDzBl/fxfcOkLgKh1Lkye7ECZL16hlbWCZe+4YAgbUCU +VPnPao0z+oSioj1ICtW5/oQ3JfGRF5HePA67TJS8JpjYnzaSegwVPiKzVAZbjGcsKS21C7XH r3fJw/KbQrtZTc7JNDLBAx17SI479iJPM1Agg2oUxYtQaaxjGydb9QX3JEsYTYTUx7cIP7eCA AWt3rF91d5octtzkHke2D016pQlsEK7OytgZTBh+2CMia1mEQXT8I8hyUAV8Hn5PhBna4xmmi keUWGQgXhm6QPbRX/0lf630meAHZlBvlPtDQeimwQAW6H+9930abUSoMBMOTTVK5ZUz+xWS04 3NNpJ/RK8h7rvMg+G4fnGsyUTZN1DiiGqFMxSgCUOaxS7XMj8I/sAlZyvD6glMV/G+mWUFmAW 0fWO5sbT/lBLP9UZXyYxtWzvJ3pLM8bhszgpUbU+X4AjB/Mg9vdUooEEPNTpK8jrRsnoccVaA EftTUVLPnCm5n679uzNfwoYcr5UofWIyT8NrqYmv2VpHcf4jXSPIVG7kVR/L3Df14161n3xbW 4NqpYLblhEfCeXwko1Pe3H8CVpxnk/ABaUtlWjNZw5C/9WNQ2vasckxGKlnsp4G67mIU= 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 | 71 ----------------------------------- include/linux/mtio.h | 58 ++++++++++++++++++++++++++++ 6 files changed, 137 insertions(+), 133 deletions(-) create mode 100644 include/linux/mtio.h -- 2.18.0 diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c index 34c1165226a4..137febf3658d 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 7a1a1edde35d..842457b9134a 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 307df2fa39a3..62244ce53baa 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 @@ -3498,7 +3499,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; @@ -3532,6 +3533,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; @@ -3741,7 +3743,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; } @@ -3796,19 +3799,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; } @@ -3817,9 +3817,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); @@ -3853,14 +3852,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 312b52b4e974..1b47a60da455 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -37,7 +37,6 @@ #include #include #include -#include #include #include #include @@ -479,71 +478,6 @@ static int ppp_scompress(struct file *file, unsigned int cmd, return do_ioctl(file, PPPIOCSCOMPRESS, (unsigned long) odata); } -#ifdef CONFIG_BLOCK -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 */ @@ -792,8 +726,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 @@ -1252,9 +1184,6 @@ static long do_ioctl_trans(unsigned int cmd, return sg_ioctl_trans(file, cmd, argp); case SG_GET_REQUEST_TABLE: return sg_grt_trans(file, cmd, argp); - case MTIOCGET32: - case MTIOCPOS32: - return mt_ioctl_trans(file, cmd, argp); #endif /* Serial */ case TIOCGSERIAL: 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 Wed Sep 12 15:08:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146573 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4944415ljw; Wed, 12 Sep 2018 08:12:53 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYvsikMMJ4gt+NkEywHjeIRSOwj70fWyjlpLG6PWzHRCmRvc9X/ZtcaTOij3ZYuSuEEUELo X-Received: by 2002:a17:902:744a:: with SMTP id e10-v6mr2817379plt.165.1536765172476; Wed, 12 Sep 2018 08:12:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765172; cv=none; d=google.com; s=arc-20160816; b=MzBJ9ti0r6ZWsUFktBWs3kyBD8hZFYCn0t3senrRFqLtXLmNDk5MfEF+S7yFR+jLTb f8Bw3gwpKodLt4IYODZ+y893H5f5ahrPmc8JcfTLHQvjFejEnBf9cxwwI5hddDYaPMkB ulWnGRZYc/lqnctcHRDFVEOF0THL0ATmW8qc3Ll7ZdTHgDSiTiWjlcuz2DRXSHSmWFOX 08QiOfZ6xt1fK4/q9/u7dexguuO7dgOJw1PSCMjlVuwFJKp6Rq5RsY4chytX/0RkArTf p/xEv+iphBUyWUfgXc7RjNv5L5hjVWO4e3DYhZkcyqAMMeP4Pw++ZY7eIDJJUH+jewwr XhCQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=Qip/BdurKoa6w8tTsIYJEaS0wO0tpO0WhmQ/PcFZgRE=; b=HG7Antgavvq8B1MW5yyO5AKerwd10HghEei/Z/TG3FYf4Tdky6xfyRuewFOU8jgSqs pcXZ81IeRM2aZpjaRZsdPYfqo/JGgx9B1i2RPPcGByZiH4dKUhqiNdor6YCzKD2wFA8A yUQ66/VsGEokWCplIj+JPJak20t/pMK0oexBuzcwo0EdHiYpd2l6yKu7jL9DoPrtwmAK d8lrM9+NfqVqvEFUEUndVnZXG0Z402emRbvqZ7QK4SHYXG2PPR45kxuxyMIiVkJRa3n7 s/A+Yz2SFO63thlVRU4dI3gsIDZ7nkxYqOPG8hcljMNR/btqEPXgWmA85mEjwxV7MIua YSSw== 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 m12-v6si1234051plt.212.2018.09.12.08.12.52; Wed, 12 Sep 2018 08:12:52 -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 S1727771AbeILURq (ORCPT + 32 others); Wed, 12 Sep 2018 16:17:46 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:55975 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726640AbeILURq (ORCPT ); Wed, 12 Sep 2018 16:17:46 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1M1YxX-1fyB9H24jb-0032LN; Wed, 12 Sep 2018 17:12:48 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 08/17] compat_ioctl: remove keyboard ioctl translation Date: Wed, 12 Sep 2018 17:08:55 +0200 Message-Id: <20180912151134.436719-4-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> X-Provags-ID: V03:K1:kSpQWv6RxqA2EjJv0aHUx8NsS4Ezk1aP9GB29Sy1g+G/CTDNnG/ TFNb0ROBXdWprSKhNZaYMyDNN8NKUKZeszbXvs2kcKH6YCpQ8BUDiHvdkHkkZcXjbueSAEq qrJZS/oQZjsznOPbKyrPsHj6KGHi88LtcnNpZJQCWA0gfHaJWUMOEygBd5V3ivc+UY3O+F4 RuUUdlWfsX7VXEUuIZFjA== X-UI-Out-Filterresults: notjunk:1; V01:K0:1ufQwC4YEPE=:5VAbshcSLIDZawHaVWr9on K5kooPLhVb1Z3H4MqJf9HkQj+DDm3Dbwf9aRBOL8bTskPkj+cw4yxodneeYg9L+G2g9WwpuA3 OBHDOEnsbn23OMyvpZyjAeVQYI1JB5sR3B5rX7E/8GzU51YB0rK8fCR4d5Uig+CTyehI4pBKf Ktv4cipUbjx5M3YyzPcE6vbosPdXqSYjzDv3EjBSQ5+4QEHSAgooBxSPh2S8eLtluBYVXhskD qiDFadyyWXafKPTIZTxDrvUhlGt5NKkmOFibUVZmnDwzfOinS6TNfTbnBbu1RnJSoIHIWsaFS 8EbOeRh0Heoj+azq7mhmNekEwvbbkPuCgAvYdXrcTuckjzil8a5RJ5G2NyZRxashYqydRphPB vXybaM4TzbQ+XKRAdHC+AD9fyASeEoSoo3YUpBtj8vxNyA+MID4I4LjfhMbC/6EAGK0uXJIGj BBlHz0yRb3kEKvmuh44VJkDLFkQHlh9zPO599yJe1E6XvtYOVdn47atKoIQN0Yo33pz8xl0JA ng/mYPmAToooEMqUWOuWKebNpSuYdTYZZH0KJsq4ujMdYQBCtId4ImeZMrp3C7V4JPn0yb+bb Oc64Zw+ng4RseQcFzb4nc8inP9b8iSMStKCjyIzQ+YAIuDZpEwoNIKiSyMF3xcA5GOCypLJap AhWVQ/2c21rT0df/osGTLNzTh+z8I6e+OyY8BwI9oWQGZ6413a8AkjBFwQty3zvJDtxg= Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The KD* family of ioctls is implemented in two drivers: drivers/tty/vt and drivers/s390/char/tty3270.c. Both of them have compat handlers for all their ioctl commands, so translation in fs/compat_ioctl.c is never used. Commit fb07a5f857ac ("compat_ioctl: remove all VT ioctl handling") removed the compat handling for all the other VT ioctls back in 2009, but it seems I missed the keyboard ones back then. Signed-off-by: Arnd Bergmann --- fs/compat_ioctl.c | 26 -------------------------- 1 file changed, 26 deletions(-) -- 2.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 1b47a60da455..e245deb684b5 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -687,23 +687,6 @@ COMPATIBLE_IOCTL(FIGETBSZ) COMPATIBLE_IOCTL(FIFREEZE) COMPATIBLE_IOCTL(FITHAW) COMPATIBLE_IOCTL(FITRIM) -COMPATIBLE_IOCTL(KDGETKEYCODE) -COMPATIBLE_IOCTL(KDSETKEYCODE) -COMPATIBLE_IOCTL(KDGKBTYPE) -COMPATIBLE_IOCTL(KDGETMODE) -COMPATIBLE_IOCTL(KDGKBMODE) -COMPATIBLE_IOCTL(KDGKBMETA) -COMPATIBLE_IOCTL(KDGKBENT) -COMPATIBLE_IOCTL(KDSKBENT) -COMPATIBLE_IOCTL(KDGKBSENT) -COMPATIBLE_IOCTL(KDSKBSENT) -COMPATIBLE_IOCTL(KDGKBDIACR) -COMPATIBLE_IOCTL(KDSKBDIACR) -COMPATIBLE_IOCTL(KDGKBDIACRUC) -COMPATIBLE_IOCTL(KDSKBDIACRUC) -COMPATIBLE_IOCTL(KDKBDREP) -COMPATIBLE_IOCTL(KDGKBLED) -COMPATIBLE_IOCTL(KDGETLED) #ifdef CONFIG_BLOCK /* Big S */ COMPATIBLE_IOCTL(SCSI_IOCTL_GET_IDLUN) @@ -1210,15 +1193,6 @@ static long do_ioctl_trans(unsigned int cmd, case HOT_ADD_DISK: case SET_DISK_FAULTY: case SET_BITMAP_FILE: - /* Big K */ - case KDSIGACCEPT: - case KIOCSOUND: - case KDMKTONE: - case KDSETMODE: - case KDSKBMODE: - case KDSKBMETA: - case KDSKBLED: - case KDSETLED: return vfs_ioctl(file, cmd, arg); } From patchwork Wed Sep 12 15:08:56 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146574 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4944561ljw; Wed, 12 Sep 2018 08:13:00 -0700 (PDT) X-Google-Smtp-Source: ANB0VdZ6Z/jxcG3H5DPyDejAI5qLhAbkHZ+51hrRcgPyDyosjMGBDi4J0OgiQ7gHHEbFWMah9IH7 X-Received: by 2002:a63:d206:: with SMTP id a6-v6mr2759453pgg.99.1536765180101; Wed, 12 Sep 2018 08:13:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765180; cv=none; d=google.com; s=arc-20160816; b=q+2sWpOmLtO7V+NBXznX0Jw77jl91kYux4N1U4WE7pblmnvzMK5wpqXdIktNfNAw5O u+0wghGVr23G0pwCXtoxLccz2HSeaoV1hlN09WboDVJbSUfy43eul3aIQkTzG97NBr19 yUuF5R28q4Wyf/xVsjM5WOyN9dzkDQGJoc2UilpQGtHAPoaSu75FZDCEd3GlBG2+4fI/ s+kL3ua6DsDhnTkLgX5h4fktt2YxvQ9u47iPdI2wxo3leF8kSdFrO8IyJdljPVotxPwv 6LFO52udHa6cmp6VybA8Wc+iWTYW8kJbjcRfTskn8rIM5grJr/RUjhG5x8IrXa2VWJRI l56A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=AuO8Ww6pX7Ql+uppZCNGoBQqTdyoLsWb/aLyfRCHdVY=; b=G7XFSQjWdUH43o7KbC73ZkwBQKVWYIm+W7NvrRW6M1lDvMywtq4kuQNoJvOK4uHViN b8Pzh2/xPXoXi2O/iMQuTW/2RSvs+XGFMF9VVD9vtaBCPF71cN2XDuBhowjsQOF0v4gF wCyPHdnHvKMFVZZLO/TUh9ELrgue2FLayOjOb3/ynLd7X5kQHkt/UsyYEaqanIROKHLR 4R7GN2IGYPlZEftvuec37NsdJ+RDIyiW5JOMKC4/b0HoDxY2GwSFaCpPvt/xIsEYTdiJ KkZjU7q0l0Ne1YsJIXL8KBV/h6+LFMyOfdB6b6VpY6ioxVtQl8ck23MFV7j/Q61L0InQ Kfzg== 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 m12-v6si1234051plt.212.2018.09.12.08.12.59; Wed, 12 Sep 2018 08:13: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 S1727842AbeILURy (ORCPT + 32 others); Wed, 12 Sep 2018 16:17:54 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:43891 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726640AbeILURy (ORCPT ); Wed, 12 Sep 2018 16:17:54 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue010 [212.227.15.129]) with ESMTPA (Nemesis) id 1MtwEO-1fhbQy253E-00uJYI; Wed, 12 Sep 2018 17:12:56 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 09/17] compat_ioctl: remove HIDIO translation Date: Wed, 12 Sep 2018 17:08:56 +0200 Message-Id: <20180912151134.436719-5-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151134.436719-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151134.436719-1-arnd@arndb.de> X-Provags-ID: V03:K1:/0bZN4heVjAGdCq1qjneAxHCTRXoDIffTOWZjMByUY0l6I4tLut sgVexmMO9fzAnFzkJUqKLZqxRJzzUMdw98n9v3MpjvIvAC/Xz/A1+IZeFjUJ6GHKCxmVXZv 2gbGYavQhRpp3MlE1JBLzH3YrMZgpre2JTA7aXw77wZaJ9TqOTd698GE3ZzOQTIZ9EjQVx9 rU7b7+UmuzVmJqgu92xog== X-UI-Out-Filterresults: notjunk:1; V01:K0:hKj+/QgYaKM=:FP6Gp1JOt60VnlnCPo9puL bfIn/ZTqPWj8sYz9X+uKjUSHpZu2SLN0+aCmD2kliMTTh7rSkky2CisPBnVgyDzLXplmJatxv PHTar3fFAb7Yo0s9SzupYOkWbShYemgvZ6MmtPlZDlGKOqGE0tdrRjgpIYKCuDKHkuVtuRYcN EgtFWAqI8QDLdzSOviVm0yr31OZnVHtgR9G1etnhKIWwwEKy7W5P6Nh3HOE4SkKjvabrdqq+z Ve5UlB6qUYdWpjD9FKuVR7hY8PfA960Jalx9OvGffWfmGXUns55PadoEfsDgLFBaZOO8ZOtY7 lHNdvupsO7o0VC22Fg+SnZr1cNyodrfMzIHIUqH+PK2pNCyeyt2tJYUsBFQh90k1CyCgiVCXm n6yRO+Y1sqEWkjfOPmtcWxvQKCc7p7k/AzfGtp7zUv25dRFm8ntQJxS5j1tKfwmeQvmlpar1D GUj92b8sk/i+S9KW90zcoSUljFw81tbv9715udvcrmZsaHN1zcA0r2m9O8VPAwxEyixszlRDU 5lIQSLTih9zmOJ0VWvDE+2QY2Wx6KHUKVe4T3xBdEO1o6OJ3y4qztHHiP6elEU7Lp8argHqnL 6TgwOOxwktF4nXIHWsY3rdg8/2hlFiZJepuCPOuNaCFf1VkfC3pHIBNZcAP+eL9LUiK2lIkUL q3YpshW6ASykEY+zdz8+9916/qFs4o72+rWo8v/g2pg5o4Avh8XmN/DI01GgB8vH4LSs= 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 | 18 ------------------ 1 file changed, 18 deletions(-) -- 2.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index e245deb684b5..001c9fd89d30 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -1023,23 +1023,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) /* dvb */ COMPATIBLE_IOCTL(AUDIO_STOP) COMPATIBLE_IOCTL(AUDIO_PLAY) @@ -1094,7 +1077,6 @@ COMPATIBLE_IOCTL(CEC_S_MODE) COMPATIBLE_IOCTL(CEC_TRANSMIT) COMPATIBLE_IOCTL(CEC_RECEIVE) COMPATIBLE_IOCTL(CEC_DQEVENT) - /* joystick */ COMPATIBLE_IOCTL(JSIOCGVERSION) COMPATIBLE_IOCTL(JSIOCGAXES) From patchwork Wed Sep 12 15:13:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146578 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4947557ljw; Wed, 12 Sep 2018 08:15:23 -0700 (PDT) X-Google-Smtp-Source: ANB0VdY4o125WlqCAvi7YR3vL8ysHNHS7AvnmOshIXmz9qQeoVZW85WfhVzJMqi4ZSqDgFq1nlv/ X-Received: by 2002:a63:f244:: with SMTP id d4-v6mr2843951pgk.2.1536765323597; Wed, 12 Sep 2018 08:15:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765323; cv=none; d=google.com; s=arc-20160816; b=fKyy+fupA7OckEoJBnUylsIDeWK/WjgVf2QYZCCRnP0s4pzFu486rKRtsXldDql5Ky ZoUpSLNG9s07g41k9GSlrVV9mhYH0TJemCg01Xaw4Bqx5/kDiGt7QlckUCSmU1RuHE43 EJ2R95/zlxl/PWBvnAz0WSpr16Wq9YMSyxOTJYRSy2f7ZdcvHs+OsH3L1rtnRT7o5aRi 0Rp4SOvmcy1Fj5QsBwkyKXivKfKFQIxrTzYYjNopfV9Q/SJapXTKiKLuawAHOmSo9w7F DIq98u8g17RIr2PTRmsg3W8M/E7ZF5p6sEEm3mPwZ063OIenHAKHRZpELd8TJvG1NfAU yDTA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=GV3Clu7MthYjC+KvMy2f7+jAK/VV9Zr9BI+tTF/HIMM=; b=WggF2rYnGoJTfol0gSELcGpYvmQASSVZDFZl8IZsfK1vfUxU4tlI7N1kbZTjhVvasF uA+fjSh3Mxh1RWLi9uPtlbtyxmkH6mN2CwCsoi4ARjnF8ASs+k9xfWreJyIr8W8j8ACf SQfso9NHMdrWv4fRBSA//ShRQwQIaRhIm816zxKXpn/g2o/d61IujrgVud0LH9Cg3tH0 7Kd2WVDmjuPsDYXEuUq2BMLVNeNLt2n1JlOtWfmRc4FcNzJwdQni1F9nrNs/MfQ6qNaH XDd/5OdAEdVcSFc/0j0qsJQHajvuyaZzZNqM6uHm6ovue3aWU+T7abljY8J9U7f7GWjx UN7g== 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 r124-v6si1418508pfc.202.2018.09.12.08.15.23; Wed, 12 Sep 2018 08:15:23 -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 S1728003AbeILUUS (ORCPT + 32 others); Wed, 12 Sep 2018 16:20:18 -0400 Received: from mout.kundenserver.de ([212.227.126.130]:39341 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726672AbeILUUS (ORCPT ); Wed, 12 Sep 2018 16:20:18 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1Mzz6s-1ffyyT0KV4-00x52G; Wed, 12 Sep 2018 17:14:51 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , Karsten Keil , Paul Bolle , Randy Dunlap , "David S. Miller" , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, gigaset307x-common@lists.sourceforge.net Subject: [PATCH v2 11/17] compat_ioctl: remove isdn ioctl translation Date: Wed, 12 Sep 2018 17:13:03 +0200 Message-Id: <20180912151422.571531-2-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:sVY/sja0LHvqNLTgv5hsJPWtmXt9NlBmoBucSJdKP223QjucLmZ 4TenJF1iUocwvkGiOwoKKoST/C9UhEIRxk9Dj8dY95TzM7JKADPn6/x/mfrvd12dC75LslJ Ksxl92emuBImzB+DS1H4dKHFUv/I02Q6h/FYx56/1w/HpImf+Lmos2VhGJeEirRg2OsVN5O uoW7C5ZwYBpyWluA6GOSQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:efvwKRq9x8A=:bJKsz1lvaS2Uj5pj8nFmEm mrvuY08Ka7t622A5rXyC72QXogGbPfKdiZash5ktepftmdWmgG2yt9B5gOjx2K0WL1r2YF5Dv pAlmFMVFgMGbmDEVxcJHgp27S0unRuzc7z+AMC64vXtp7Vq2rGYDdUeLwJaL+r7wk5TqVEBA/ r8196fIzhFxN4awHbhlSVKiWYEZ2+iUTUPvSOx5x3JlKj3RsxP4SyS/Q42/j+A7thmDZMKtza zKooNZ56IB3ZBOXzjph1Ce8EOqf3pE6aVxzGCfiBSq9fopladCH/xYtRvE/iFho9yavToEL1F Q+CyWm+YIRTAHUVvtkprcXgVQVPjkmfLwKnqcno8qDJ2Zi/MQVK++AomlR4EpeTRNdJq4LtvJ jfrjpP0wfb5spt5O5xCXoMydI6jg0G/bDeyr5Hq6CRjIwgTjrpUaoZyYOFkvhka4tDxxmyH+L UeM78+PdB88O7ng4qtXRZIna847YT/+HIzaNIzm7CbktT/vdr7BlUEs7DjmWvP+OFrhEZZHB2 J169thEKbY6aiMXNFSERPmwz16ZGvLue0ps2IgV5ghj8xv9o3KhUbjHCsnNDyhprk6JgmTD9+ CpEOTWfMlwzxRCaBXStecdAJcSmy06dqsjvNRRVHYyMV33AgXzVUu+F7sBfMMOyBvvfurmbuu mUExP8tHJno7AL/AAh47MUkVyUiiper6htX9LQsa0biWBGKYTMKhs85hDviwXdYWA2K8= 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 and the Gigaset ISDN driver (implemented on top of either CAPI or i4l) have some ioctl commands that are correctly listed in fs/compat_ioctl.c. We can trivially move all of those into the two corresponding files 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 +++++++++++++++++++++++++++++++ drivers/isdn/gigaset/interface.c | 11 +++++++++++ fs/compat_ioctl.c | 22 ---------------------- 3 files changed, 42 insertions(+), 22 deletions(-) -- 2.18.0 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c index ef5560b848ab..4851dc3941eb 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/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c index 600c79b030cd..e346756b0b45 100644 --- a/drivers/isdn/gigaset/interface.c +++ b/drivers/isdn/gigaset/interface.c @@ -233,6 +233,14 @@ static int if_ioctl(struct tty_struct *tty, return retval; } +#ifdef CONFIG_COMPAT +static long if_compat_ioctl(struct tty_struct *tty, + unsigned int cmd, unsigned long arg) +{ + return if_ioctl(tty, cmd, (unsigned long)compat_ptr(arg)); +} +#endif + static int if_tiocmget(struct tty_struct *tty) { struct cardstate *cs = tty->driver_data; @@ -472,6 +480,9 @@ static const struct tty_operations if_ops = { .open = if_open, .close = if_close, .ioctl = if_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = if_compat_ioctl, +#endif .write = if_write, .write_room = if_write_room, .chars_in_buffer = if_chars_in_buffer, diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index c28fd9f6b1e8..379e04647f83 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -60,9 +60,6 @@ #include #include -#include -#include - #ifdef CONFIG_BLOCK #include #include @@ -840,25 +837,6 @@ COMPATIBLE_IOCTL(HIDPCONNADD) COMPATIBLE_IOCTL(HIDPCONNDEL) COMPATIBLE_IOCTL(HIDPGETCONNLIST) COMPATIBLE_IOCTL(HIDPGETCONNINFO) -/* 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) -/* Siemens Gigaset */ -COMPATIBLE_IOCTL(GIGASET_REDIR) -COMPATIBLE_IOCTL(GIGASET_CONFIG) -COMPATIBLE_IOCTL(GIGASET_BRKCHARS) -COMPATIBLE_IOCTL(GIGASET_VERSION) /* Misc. */ COMPATIBLE_IOCTL(0x41545900) /* ATYIO_CLKR */ COMPATIBLE_IOCTL(0x41545901) /* ATYIO_CLKW */ From patchwork Wed Sep 12 15:13:04 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146577 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4947143ljw; Wed, 12 Sep 2018 08:15:04 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbllDuquEanuvJiy9l3GiK8P0H281VdxVYorLA2I4Sm056+lcM5lewfccObHkZ1KiwHzqGb X-Received: by 2002:a62:c406:: with SMTP id y6-v6mr2913281pff.161.1536765303389; Wed, 12 Sep 2018 08:15:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765303; cv=none; d=google.com; s=arc-20160816; b=FpUQWydZQX3ZBXeBBiXD2tx7uUhSMJV+ar00QviSLg30cz2s6Z5XSxbIEXde4Stenj 6r8eC+2+Ea0PqDy+ZTnc9Ypx5ZkaZ0E2dmMMEv7J+8r4YTQ3i2+/DBjl0r9yJp+kCFyt d2zy9cJCK2qknpOkdXwOFi0+GRIzQT4XqrPcYweOsjSNkKR0RWb3Dv8o+KPNJthzzjgt O/eVW0XdPqk7a16Kdb68tKDFQBCk+P+DRMGhKAM6rxnSpL8cG1EprKLbpeQjMwsKhT5f snrSzacwrnZlyOXFiK6mGvxQDMBkcS1TFiRgkubqBmxkwVrWTKaxhJ4BHaIT6kslVUC7 nO7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=Zr7Peey73bk/+/DGkVP+cHZPwYOe7eV8x3XYg3b9Vk8=; b=vdOW8RLKsxk/rlSixtfQbTZQVy/L6hrggxdrN8Ga1/+tVPi/nojMuD0gmCPqIukes4 1G7kc1uQx+/M54laO18p8alvsYgsTpSA62WRVHyvDfMEspAlMfS7JthDKKcjYnz2WFh+ UIgFI08YiiKncXt9gEEfo+1A+fOiXlVvRaRqD/Qv4zMFsHHQYJ7HV6VNbk9Y9TzxiXkB Gd3Ucd7i627RN3xb9c15S1LKt9CAcRBy5319Qz1cqt++OeEBv7ZrX99aMSW2d64hZ2VA DLZGgsTg4MRuyGcDahtrgNv5erjURFhHAjqRQHLJXSZ1OKQEhQWIVMJKtOTTJQnxEQ/O yu6g== 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 t21-v6si1192040plj.261.2018.09.12.08.15.02; Wed, 12 Sep 2018 08:15:03 -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 S1727721AbeILUT5 (ORCPT + 32 others); Wed, 12 Sep 2018 16:19:57 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:38977 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726672AbeILUT5 (ORCPT ); Wed, 12 Sep 2018 16:19:57 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1MqatE-1fVQrC2kbI-00mbAk; Wed, 12 Sep 2018 17:14:58 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 12/17] compat_ioctl: remove IGNORE_IOCTL() Date: Wed, 12 Sep 2018 17:13:04 +0200 Message-Id: <20180912151422.571531-3-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:gLton/QV1r8eFUQyeN49XpjUg++0kxEvWRSZDudc72FgtlI/UiE 5lx9vCFc6tshhyJggsDRpk5Af/VqPQGkypUfBhDITG6xj2RlkcIQ+5TESQY/p0tqR2Vnpg0 iZWtaIZ5spidOVifE2xxUBBq9NZ5/tm4aRM1ox49gjf8EBYVG+rHs9NMJRqZ90Sn4+F8mTN u0SOBEd/Zi0l+d1nQmMgw== X-UI-Out-Filterresults: notjunk:1; V01:K0:g4KIWjGVyiM=:kJDRe5LvTzN4R1HeTaH1fO LpE99F1KSVQejGRkh2oCwKsrp2JRbAzOxaufylRuxHiRQbsiIapIbKjxI20QrTVAkSrB2pzV0 R2+QGnBSROvfqr4dTgnm1n+2kBhsFO1Db82C85Q+P5tKPyqnjvACGZkZZben4K/At/S9MvtyV RAeWAMJ3ZZFzU8Dbit6zhUV292iuRKC6Lp6Q385j0W5tUMSazTJITxvtWnk+KcM62IhSEO7h0 oZew0q0kylhH3fZyrcRgVOdEYDt+ggbrZhf6+sX02mWWzaQkngdMJ83MInR0OkDWgFuJxx03w lHku4nUhwg/OCBFq5U3lQ01AeliKq5S15k+JW/EtlXY5/jSlx3DtFHoyxXFzOcCWDoH+LK8BE AIWpsUZkGV6jRNGnbtbG3+5ogfPbfnFF75FoUs4g9mb7Q6/rx86gItbQaUn2pdqC36X7CkTuv wCdCirsRR4ieitvDhpTNr0tx8VG0/shsCfOm9sVsByl6V382lVqYmFB1M9Eg/h8r9U7H+Li1U aSQy3DL9mqQJbMgLnUsfS1RHaspgyPXAQloNoBHniI49EYrCBFwatbBZ9/kX7KOXu47ISXY5D 8++bQy4FPRHkGppUVhxe4qXe/JlgJYVxUfBBkUPUBtuV8InwVXmRJ06UOSCSnTYWGkGcJzHIz tJ/uKtEdOAEVnwyX9hfqCM1koYvW8RLpsXXOFedYKv66vMJHD3SGwxMTzgctDP4AntRA= 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.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 379e04647f83..ca7f83976a3f 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -604,20 +604,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 */ -COMPATIBLE_IOCTL(0x4B50) /* KDGHWCLK - not in the kernel, but don't complain */ -COMPATIBLE_IOCTL(0x4B51) /* KDSHWCLK - not in the kernel, but don't complain */ - /* Big T */ COMPATIBLE_IOCTL(TCGETA) COMPATIBLE_IOCTL(TCSETA) @@ -694,9 +681,6 @@ 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 @@ -708,11 +692,6 @@ 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) @@ -908,41 +887,6 @@ COMPATIBLE_IOCTL(JSIOCGNAME(0)) COMPATIBLE_IOCTL(TIOCGLTC) COMPATIBLE_IOCTL(TIOCSLTC) #endif -#ifdef TIOCSTART -/* - * For these two we have definitions in ioctls.h and/or termios.h on - * some architectures but no actual implemention. Some applications - * like bash call them if they are defined in the headers, so we provide - * entries here to avoid syslog message spew. - */ -COMPATIBLE_IOCTL(TIOCSTART) -COMPATIBLE_IOCTL(TIOCSTOP) -#endif - -/* 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 Wed Sep 12 15:13:05 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146579 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4947943ljw; Wed, 12 Sep 2018 08:15:43 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYPc2yo4XakPUiUuGrvQJDFLLJWpJtt3HKrrdPHrdiiIGkLgln/q+H/Aa/2NHwkTC6Ebrw1 X-Received: by 2002:a62:1314:: with SMTP id b20-v6mr2970771pfj.230.1536765343327; Wed, 12 Sep 2018 08:15:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765343; cv=none; d=google.com; s=arc-20160816; b=Hs2TIBz2k1BQJL4kpd/hLtj+M3j2wYm7Z1KuxJnfEeDSJVgyxejVn7sBzxcSP35HEU fvAp3v/x27wGcDYFxg2fDt5W1U2LQh/Y+qrodqEXKViimRv8/XKyCTmTTS3ZrSqHWxZO KLUQggr+aeV6jMc1uE2QzOatAUFhWTal63n7Uc57fTZp6mszIMrnyvBdXrxusRA0Oplw Y2Nw5smoVXCQBWQkx3tC+MAXm6foyG7JrQBeUBoapAFVXbdhzBDTFsu1wm1aaqts/RLf UvFDZCpdMyl4y/BRDalSTyBR2Qt3kiirFnnrRQ/sSUPtTiTmj/tyso0VbmUSm9fz/Y6a TMmw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=10bnSi10VE4V8fbuPPHFm8y0CzXssJ6qgxBtQyCqzbs=; b=fQTqxKaaKrmzaYstLRDBkZhQF8oQVdYATErcj0VqGKPpHw2I5x1yTDFVaVJSIMzDPk mudpTwhmXkukUW+nWelSyCB8r7dc/HF9L+ALYO5wW91a/bRwItOrZPu8O+hnQLbSKg6U 6raMJd/XL1jaRO+Tphj0yIoF7h+lxiqIETIm0sw9e1VgspH8yPtuedv9xw3TTIHEndRh OdH4iHYltrt7DAwSfCvW8x/LY2oq2R40ycbDhz2AhzvhrixTZwDtFeWa3GcEYDWSrsEC N3GXNmHGUlmmgUYasq5yLiSuLwzTEk1CnnGtJMDPhtfSEtNmFhX7ZouWmQoePk7OFh/G wuoA== 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 s59-v6si1230228plb.341.2018.09.12.08.15.43; Wed, 12 Sep 2018 08:15:43 -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 S1728050AbeILUUi (ORCPT + 32 others); Wed, 12 Sep 2018 16:20:38 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:41872 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727650AbeILUUi (ORCPT ); Wed, 12 Sep 2018 16:20:38 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1N0X4e-1ffQiF3j9A-00wWny; Wed, 12 Sep 2018 17:15:32 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , "Theodore Ts'o" , Greg Kroah-Hartman , Jann Horn , linux-kernel@vger.kernel.org Subject: [PATCH v2 13/17] compat_ioctl: remove /dev/random commands Date: Wed, 12 Sep 2018 17:13:05 +0200 Message-Id: <20180912151422.571531-4-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:hSUqusCADk7mydLYK6fqtVhE9PT0heRLSjr4I7VVbXmaU7cZ+uE NWpB2VxCe9Vriu/Vd+rdSmS/zOYdeNkgMTQ6w37m4votc/aexuQBDY4aCWjALsudMeU5hYt KHYUJN8vplrjC61n14PgFWVmq3KE9iB4OBDwx1axDoci3HiA0KmmNGVGXO5dG2q2tXX8dAw FzSC8d48GGHmaKJ5T6UzQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:l0D5jQcBGgc=:QvIWYYyviCHXjsF3HooZWZ ZldE9L4rb1o3v6U5Ce2MfEkvYVW91WfbB4qUiM86RB1NqNBoauXo0N3Ul6WKPX5fuOYV2ATmC u3thsX03A/IuvBOwWrEkNQWTPVK65dW06KCGI83MfPlJnT3GbziLD1bzRUT/9fM0lMaBtfTab 5JujdXnndHFUwBye1zUDZw+hCgD4f/9/38Lg6AqTnrt6/QL20WtnRLDjTUe8ML+lg6zESXk63 d4ccwTm+zXv4IKYo4A1fS/BFzmgqICM9R9YVNATfN4ylcz2YWkDHNd/VjS04nRRK7A6tkP6f3 t3QQ0yqF73DfjfiXIdr7D66rvffZZt1iCCree5TRLb6Rd/h2ujEYeIwXT/fU97TGd4Gw+E+B0 rIXSRV7+hsrYqs53QRF79d7m4mbZnGNISlaS/dSblW6CXsWFcQpWEL+/9peWTUTrS2i1bQRx7 4JaSCp5Lz/kcWO8Bce/ceWNv9ULrFYEKbMNIk52ec/CGvXJCaRm/wP3B/RV/0dfN72jxvzlAI E2diRF3hcsmmZ/ROLiQGudG480vRVqG0CczafvnqHKnJ8aXsbodH8IDaY4iU1T3azWdvVlSj9 wjhWPag7gfdi3m4xbVCRelzxiP5Os8DGKEj0vF1Bu6j6IDBnlwQlDxl4dlWwiK7ZBiLydY7vL npuNrH8TfR4D3w9SwHVI5jfsGiinG71UWDcrENROVGalhJsY8c/Jr4G04W71YCqHslaA= 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. Signed-off-by: Arnd Bergmann --- drivers/char/random.c | 1 + fs/compat_ioctl.c | 7 ------- 2 files changed, 1 insertion(+), 7 deletions(-) -- 2.18.0 Acked-by: Greg Kroah-Hartman diff --git a/drivers/char/random.c b/drivers/char/random.c index bf5f99fc36f1..d1b2cdebc598 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -2021,6 +2021,7 @@ const struct file_operations random_fops = { .write = random_write, .poll = random_poll, .unlocked_ioctl = random_ioctl, + .compat_ioctl = generic_compat_ioctl_ptrarg, .fasync = random_fasync, .llseek = noop_llseek, }; diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index ca7f83976a3f..d5b8380fb1b1 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -764,13 +764,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) /* Bluetooth */ COMPATIBLE_IOCTL(HCIDEVUP) COMPATIBLE_IOCTL(HCIDEVDOWN) From patchwork Wed Sep 12 15:13:06 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146580 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4947984ljw; Wed, 12 Sep 2018 08:15:45 -0700 (PDT) X-Google-Smtp-Source: ANB0VdbZiXNSiVcouoE6WcDSghNRei7P9Yp+8U6UiZl5ljtfnyLkSPXMQJnjz+4/+I9vK0auOZYr X-Received: by 2002:a17:902:8605:: with SMTP id f5-v6mr2768238plo.271.1536765345151; Wed, 12 Sep 2018 08:15:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765345; cv=none; d=google.com; s=arc-20160816; b=oMSzAVFcjmFFkDNwYecTzT3eJPjW1vn8MGEtkGbIKYrGpkPkn9fISiEkLj0vOWhN4p ZnfYMmEyZCOPWtFOwWMiXyvepOB7qblTMkX57WPR7uX/mD+sApAcd0jIEiBdxeVVAk4l 4HihSa0pWPwWTK4GD4qw0WhXWxAIzTMTiE7FpUDQUfhPdwV+dn/DzDMddNWsGaUL90p0 E8AQu8MeQVPPppsCX5TTgicSNpU/qGlaTFFGA06OONd/z/7mZHKMgcagXJcgZlRz85E6 Cze6DHi4dTAHUTr4xHN+3T9y9eMOKrU5T/uGXW6GWiD/J703xT+cnfw03YUaHCR5PxE8 FP5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=YrWQS2662AotHkTWcW9BDNpM3VPFDVkgOr2Ytpv+Rtg=; b=cwSAIslegS39urhI/K1oKJPKWgZ6zKW26cW8Gfagxqb/K1zsvfKkgZ8CRVtypnjY9Y vMWnSPHrtr+HBiLegaTcWPHI/aJGvuAOanv82RFa0jOfxp8i8GU44mmMg0aBRB0V8q9n mFc/zLBhfr8DD4d+8Vut6CtqLCVF0EIDKYl35wN363AbUAwrSkBfDVGMolh8hcBui14+ d0H74pl0VLj7A5nhC+JqFk4zblde8E1ZUIhokjPvJ0xSyWhhk60IqWBGAxuX/PLwUB3U tzCUSIO9r2icKX37gtaQaXTxMtR4ZIINZMvj5cWXwsaAb7by8yQgpQO5p5naEpcAZ2T+ nrkg== 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 s59-v6si1230228plb.341.2018.09.12.08.15.44; Wed, 12 Sep 2018 08:15: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 S1728094AbeILUUl (ORCPT + 32 others); Wed, 12 Sep 2018 16:20:41 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:48005 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726642AbeILUUk (ORCPT ); Wed, 12 Sep 2018 16:20:40 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1M2fDr-1fzGz42jl9-0047w9; Wed, 12 Sep 2018 17:15:41 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 14/17] compat_ioctl: remove joystick ioctl translation Date: Wed, 12 Sep 2018 17:13:06 +0200 Message-Id: <20180912151422.571531-5-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:GI1gPsQA8YxHO6rmF1znw/bXXzLunbRjNsU4o6L0FDsi6EKjEer d/kkYIc8D83ZfzDt3ExcLAjd0bCw+66E0+xqgbw2ZyQk4QZ1G9K8l4+qteLstvhC304T2oc oQ/hy/CEB6XqMyrORAFp3mf7N3vly/mBmh/QTOXJhk8zHUolrdCXr1x2GXT0Xv0okVa64hZ FXzSGtDi7G+qWvnBLIFww== X-UI-Out-Filterresults: notjunk:1; V01:K0:hkOIWEyC2DU=:GM+jaOzMvQXfoY1PbV7AWc 3h/68Jg7kbjvtQ4FcVFY9kK1w/bQSapln93EpQA3WXGoMrrpG9/SCMpIQdvPNOhamBOVmaDAX Vi1lI679ZgThTK6L1BJ8kChpLYezgVWh8LxYvtvbtAne2WHhPDIDi3OOjgENnzK0FwzYKoTXK Zeg2W7UrlxqPWS9I6FlNQ6U0Wgige82vhaSNWFvCd49aOssVm0OjE09VmbQX7jshw7xVm9KuH omR3Bmwm5qJuGnBIV/MOt+93tls5/FYlnxT2zFdf1bSt2X71E+YvD7/WrzGUUU/6859v1bzvE XVkcUTy999pBQaoKfYI7iygVNEFTGtqyOKWCTa280snVW/X4w96oKoGdl5KmId2SmRr17odha ciXBroCnTUDx6YbV1LLPmvTMc41eCoUWS58i0g4MCBRTpQlnWXqOD+2F7xtCTmkMiUEdAz6fQ jXg+iVHq1Wv6+TU8p4hKmhCQrYf0yq08i0iAh3a8Zd7FAQOM1bV/zHVTT0BvhEFkC9brq3skQ uiRaPirBVAdOADyeAAjsSQcDki0Wg0ThLmCXXMZ/2AsApnhkgXNTsgVR7rjfl3lverxdEN508 ZIwYCCFh8UIxycmFWGRAtfO5HjXeQZQ44OLDKW5g0rGe+qy7mRi1tagV68y9sYcx7zt0PWuSi 7mg9Ua9KyqTMAfOpYlpeCQcn2hK5RxyLPQN/1X5xOpmgSUAIsanS3aI430oSGjpDlKTM= 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 | 8 -------- 1 file changed, 8 deletions(-) -- 2.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index d5b8380fb1b1..0e3a879339c2 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -11,8 +11,6 @@ * ioctls. */ -#include - #include #include #include @@ -870,12 +868,6 @@ COMPATIBLE_IOCTL(CEC_S_MODE) COMPATIBLE_IOCTL(CEC_TRANSMIT) COMPATIBLE_IOCTL(CEC_RECEIVE) COMPATIBLE_IOCTL(CEC_DQEVENT) -/* joystick */ -COMPATIBLE_IOCTL(JSIOCGVERSION) -COMPATIBLE_IOCTL(JSIOCGAXES) -COMPATIBLE_IOCTL(JSIOCGBUTTONS) -COMPATIBLE_IOCTL(JSIOCGNAME(0)) - #ifdef TIOCGLTC COMPATIBLE_IOCTL(TIOCGLTC) COMPATIBLE_IOCTL(TIOCSLTC) From patchwork Wed Sep 12 15:13:07 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146581 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4948143ljw; Wed, 12 Sep 2018 08:15:52 -0700 (PDT) X-Google-Smtp-Source: ANB0VdaR6RVN6PdxmXhO33z3cxU0bZOJvA7GReVxi3v4PO2QoBmtbZem3inzgk1JQr8BmV8+Z6kP X-Received: by 2002:a62:ac12:: with SMTP id v18-v6mr2948043pfe.126.1536765352401; Wed, 12 Sep 2018 08:15:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765352; cv=none; d=google.com; s=arc-20160816; b=k29HI2SFBvhHKsyUjiJOWvDicaArqhDRLB4fXxHsyyNpj5ftMZ/pznydU8ry5H2XFa 78RKkH4foT7D01s2+b2eHnGmlyZL+o2BzukBKORUzsTrABJWSNsiKcm4yI5aK0fT+Sc4 EUTCzbyh97ojOYz3UKZ4tqfXCfCylmW9uw1nPkDpCryqcsyR9vkM6xraGU5xT63YipfB Cw2kAfOu6/pJ/xuEDq+XYMR18C7i/oawUmxxfmm9ifsPV7Lw/nY6+qRnDN62O0innQJj 1KUNzQojfWcbOeuU8c244HZ7wX71t0Ea7q+UTTs3RPmGFSDP3WsMKMfSaVVX+r31p8l1 jQUA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=YRCDAlGb/zj3Rl4ExB2tP6IXYPVw3CCjDwSzQ/56ZM4=; b=QGno5TOvIRlDEh8u/1c0W6RoKcrwOHVmEJeILHbRb9uVl7lBnV6eDHQ9WnUvz6wAx0 RWnDWWdCO7f6+L8Ea1sHwpUNJnekga/wDDLEF8hze9YtHO5hZPBQzohD5UxM1F2tFpv6 q3TdpSnqPF+iCNligKJzjkjl6Ba5k7ZI2rSgi1C9iJIURkdoUNWTDJxpejpwyEq4WM6K Sp59omwNUPz8f20RIdr69q223+bTsQCsDzhKgL9e5zy1H7bSVDGI5qs/nm82gLnu8qOU oZMRHabsxsMZprYhxlVRwzQPfUYTNDOAfj0b1dfclbr9k+D5/BilGO9xBuWPh+f9IikQ btBw== 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 e1-v6si1247978ple.262.2018.09.12.08.15.52; Wed, 12 Sep 2018 08:15:52 -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 S1728126AbeILUUr (ORCPT + 32 others); Wed, 12 Sep 2018 16:20:47 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:57885 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727866AbeILUUr (ORCPT ); Wed, 12 Sep 2018 16:20:47 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1N2m7Q-1fqMwK0c1M-0138WQ; Wed, 12 Sep 2018 17:15:48 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 15/17] compat_ioctl: remove PCI ioctl translation Date: Wed, 12 Sep 2018 17:13:07 +0200 Message-Id: <20180912151422.571531-6-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:16boItyQJqAAjoblHWeigXKi0Y1vak+TqvOsJf/iQQkL8a1DBec ItX1kkSVdustKRX71Ese5MgtRRuyPFkErY3wuO7KY+yT2YGDv60E1Oe8W/JhrKRew7yMrdh EXbrQkl0WEvccr5Mf8+9pp7VzWtLuz3m3sXBeBLBI+xoxfrkNwxWRKcttVt+d3ruIUABXTO s7o4DXLcpj1AzisCgjcAQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:n/KXENKiRpo=:Vzv2h6i8yIKlj0Gg/ie+qH eMzasZPLz46HWQg84jAdUVZviqWBjmesax+FxMznlnIHy6YXRadXCrS8MUOtIRFUOIozzGG/R 4RxLckVYV5cZW5lpyUUNrE+DSFNqDrzaHhyeoXcv5zXAffyUbYjRQrOtUzRTm+5cNVThxpW1c HsAvvwlzjZ5xjg0MisqSkKBypckrUzTTXA1PIlUj223hnbAKUfmIi/ovcKYHMLkIJqYVmQ+u1 xdNyMmfhxwJIAx+/UGWDj9Dao7v/S7hfxm5TTVmBMmpXGviYcmMNHoFehqLJPlLKMdWHnB21R g82SBbAryB+AWUrnMTp8onlkd+drhuTveqcs2zlx/HROUUKlTUg09824Abo7Ef+GlsMkRiy8X PSTiFG1U1Zv+lMhJFmaf/5nT5SvswkuapT2ybI3US9a41/Hsd/o5+Q4MKkMjT+U/pqvOYIY0l dh2vvIBVZK8wODozsuC3ZZ//ImCwWg25h+3UpN0Nrn2vj4WCntRAVwmVJXSoulPk9UnNg7XNE az6zfxaUpa+1s4LzA10m97V/KdsRcjtL4VDIHiTh61fkICfzS1N6eQMrOn+BtrH/Zkr4f6VoC ekKNMOBMTvwgGW7q/EPn3LVMUg1HzfZ3AG5TLHeDvqXUKHfXE6n8RHZScx3vyiqdh/KgvPYWr j1YN3JH2Xu1+7HKXrMNrpTlmpvWkY6/2AFFGUZxLCyEfzpPtOyATANRdvLdyzxY5koDI= 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 | 5 ----- 1 file changed, 5 deletions(-) -- 2.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 0e3a879339c2..8510cd652bb0 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -43,7 +43,6 @@ #include #include #include -#include #include #include #include @@ -810,10 +809,6 @@ COMPATIBLE_IOCTL(HIDPGETCONNINFO) /* 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) -COMPATIBLE_IOCTL(PCIIOC_WRITE_COMBINE) /* dvb */ COMPATIBLE_IOCTL(AUDIO_STOP) COMPATIBLE_IOCTL(AUDIO_PLAY) From patchwork Wed Sep 12 15:13:08 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146582 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4948314ljw; Wed, 12 Sep 2018 08:16:00 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYxeTdwRcpdPsL8O5rBF+gDOf3A/OcYW6njelqcAcHDSwdwffxJtax0F4RjxtoAFXpwP5CT X-Received: by 2002:a17:902:7145:: with SMTP id u5-v6mr2839801plm.259.1536765359891; Wed, 12 Sep 2018 08:15:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765359; cv=none; d=google.com; s=arc-20160816; b=M/SFmz0NnJaEsHfC6EVEfihKpqVjW09Wvupn6j58EEhQd0ztHfxSx6U6K+0sJZh6sN 76hHtSq7mavj3hcy8y4B+Vh53RifRag7X5802P8nik/1rYqQoc35Fi2PtaO+1mgFTwHH t7FYcsWy6k8ClxwFhLV7KQ9y5u/DoORtv1o0/x5tH4HlyEZrX2pZrlNujktXCiylhF2Z dW8NnOd1Kq/duh0Rr6G/o4b2JDJv1VXDdQbCE8BzT2qPJQVvLi2j5XOsnG1U9dygp0Xo nzAXU91YHLrQOkTQGGwdzpQvtq4Xhxjt9pjVgwGl4QMj3FHj/RqnZL7iQUGXShGfMif3 h7ug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=ic6Ju/UU0OazezPk5M9psFh+tcLKyjnZIzKnUnWeXIM=; b=Oox5KCQ93Ug6VIocw5kqfO656QJ0uRWwFE1FHYyzlWhHfxCHI/GTutfSErjwOG/Q7z E4GukDrEYSqpZnfMoGciP29xL/HAmzmK7euqN4fSdAKNxCEZVblk6MsR/dM3g7r4nrId f1HO+A4MRbR/0YSc/GxeR683OQU6pn5Dm7gpdKTcFpZKlyFhpG2T2WscVRpo9UXHMGQ1 Fe9cWHmz6THiTNtz2g/aDnggsS7COLldnCTrS6ByDaCtUUneSv+xpdlbHw1JHtDnl0xi f9Gv51Dnk4qQ2hDEQwfFrjKvO7kLsSichgFEMWLl/pMMNaxFQkNXPudQcZ/uK9jYoj0+ +bQw== 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 w11-v6si1368110pga.454.2018.09.12.08.15.59; Wed, 12 Sep 2018 08:15:59 -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 S1728160AbeILUUy (ORCPT + 32 others); Wed, 12 Sep 2018 16:20:54 -0400 Received: from mout.kundenserver.de ([212.227.126.133]:32889 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727004AbeILUUy (ORCPT ); Wed, 12 Sep 2018 16:20:54 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1MgNlH-1fLpVU11RP-00hsbB; Wed, 12 Sep 2018 17:15:55 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 16/17] compat_ioctl: remove /dev/raw ioctl translation Date: Wed, 12 Sep 2018 17:13:08 +0200 Message-Id: <20180912151422.571531-7-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:biePc2ACx7bwrpc7sls9V7X4YqnMWv0qCNnd8+u5xLT+XAECBkK ZFYXrb7jRSNkSkjJpPRcw3alera/JU/7FeuMNMRNKAIDomey/ioMEf1CAsl7lnBiaOH3sXZ A10+I0P6xDPLZqnG5Y5H6lTcwTjwZLVyb8roHQ2FwM7+eGic2Lw8Go2mGkpKtEvWgN1dwTZ KPJ5XcVRyT6gZV4r/bntQ== X-UI-Out-Filterresults: notjunk:1; V01:K0:kPHCRZJg7MI=:Wz0bgwxd92ONpCXC12X0Be /uyoS4PyStatIt1hdfIBOzi3Lc51LJEEMlLw/Uk10Xxjx4xXVweA98yC4PUvqvQSSMrSrSiUe TfjobK4Swyv3+x/7Ox6lSy8/I9MJ7Bm3K4IdotSndriCsNNb3QaoeUCX8d4GYUxHwfTStPqIP Ea+bBMmk+fQ4UKK4H/M8/gDUiSP5aeKGziewT8UGhSgprfKK/R3jjwwrktSPf5yvlUY4sqqo+ FiXHzmIQoyvqAkcu0qaoXu1U5xtkch/ijHs9BfNn9fKOCVjkqtlkyMGOe0hqLJs7PeNmW3CIf smBUv5uxh+sPpVEmB5BJVDAZIp1FstEyuVo4qR/gbRMTNmrwuEIHBMxq3YOzafFeMwsAAvF7S +CfBKpqErb1TYxia88KmYOot6KBp1hG9hEbK79ORsYAv8TetGqZLfC2qMdUgsqwlNyWnblGy3 AS7forVMQx+kW+WZTboRfEiz+X2Nv5klkECDGElEFnf485mASfUxBkMLOVhvaNXdV9NstjWJ7 hfZGXZQ51j6JmxaHizLRPH2YQ0NMHP4yIJU5YBLENFYMO3a29f12CBAVFvbyJG47PnaGbN2t8 OhrEivXrUzwfZk+u10sTE3EJjr4PxejT4shStVLpxSUZkKxOfgQaFjhB7VA/kdMpP3cepW0/6 Q8+ExD/ONsXeNN1rl0AcRLU99xT/H+5wr7udJnui5NOvjBw9rjW53c1x7sregMnzpkxY= 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.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 8510cd652bb0..79ad7c3afd70 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -40,7 +40,6 @@ #include #include #include -#include #include #include #include @@ -747,9 +746,6 @@ COMPATIBLE_IOCTL(PPPIOCGL2TPSTATS) /* PPPOX */ COMPATIBLE_IOCTL(PPPOEIOCSFWD) COMPATIBLE_IOCTL(PPPOEIOCDFWD) -/* Raw devices */ -COMPATIBLE_IOCTL(RAW_SETBIND) -COMPATIBLE_IOCTL(RAW_GETBIND) /* Watchdog */ COMPATIBLE_IOCTL(WDIOC_GETSUPPORT) COMPATIBLE_IOCTL(WDIOC_GETSTATUS) From patchwork Wed Sep 12 15:13:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Arnd Bergmann X-Patchwork-Id: 146583 Delivered-To: patch@linaro.org Received: by 2002:a2e:1648:0:0:0:0:0 with SMTP id 8-v6csp4948446ljw; Wed, 12 Sep 2018 08:16:06 -0700 (PDT) X-Google-Smtp-Source: ANB0VdY7JhjbIusE64oq+R6nCq1kCTfiS823bNQWQttFp/TrLE4sMVLF/Jm52a9N5qgqdVK7+eMy X-Received: by 2002:a63:c20:: with SMTP id b32-v6mr2855463pgl.400.1536765366468; Wed, 12 Sep 2018 08:16:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536765366; cv=none; d=google.com; s=arc-20160816; b=IVxvvM9Ef6Eld9JIQ+dhwym2CTN8zzt1jOYMT+WnIbzcYZDijLl2LdAEx0xfv5aeNN hhQw6FAI+i9RtnJzYZNhBiBEO8ps4CwOH5TwHaGSLO62u8kqGMldFKzbtoqd9ebICnqz eaRLglvAJxth7lU6OFxjFK4OfuC3JrMHCdsxcGTWDw4lolLRchdzQRKwDwTorQCMN53k K1eNNSFqkelgVweowZLpHL/J3Rl/aJLqL5lKGua6HOcwBrF8GDPGM7nLN1H2tP+Zn7Fx flvjPlw4o+0J9pCSqyXFyjvBf4QJUPHyK2PqyhUbtWj0NArPZklX1c2pLkiRHVaqQMLs zC8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=CJe7VuTvzWvyDgdOSWrutJl62LLfHoSCRmUCLKxbGL8=; b=fvadspoljZrS7XIqH9DBL3jORkGfi4goai97dULOZ/u6nMTwPKuEkQ0FEZqpT9muT2 Wl9psOS+YH5xXqTUub4FQu3QcT1LhtWN6d5cOP/SojYW13BoGFxjyvCkPTVYQPBBnYwC JgF0e6I0wpaaAPK9Ov5wPpg1Rs4aEk2P28aAGboqWSAEnF9HdSc5S3MlIKC8Br51cZ9a FPGaTUJ2JnnrTjWIOqRMDXpRlWW15odAu5HWn+nwZXn4yjak27OXa6t/lg+5T1CPSNzd LlSikCI9BpIPXeCSVo34fYvBBVVk2FuCHARnPIL3YsgRmSen6NiJdWqiHE37K3Nd3Bl5 UaQA== 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 b18-v6si1417107pgb.612.2018.09.12.08.16.06; Wed, 12 Sep 2018 08:16:06 -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 S1728178AbeILUVC (ORCPT + 32 others); Wed, 12 Sep 2018 16:21:02 -0400 Received: from mout.kundenserver.de ([212.227.126.135]:42934 "EHLO mout.kundenserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726836AbeILUVB (ORCPT ); Wed, 12 Sep 2018 16:21:01 -0400 Received: from wuerfel.lan ([109.193.40.16]) by mrelayeu.kundenserver.de (mreue009 [212.227.15.129]) with ESMTPA (Nemesis) id 1M9Frj-1fx6CD1rYF-006LvN; Wed, 12 Sep 2018 17:16:02 +0200 From: Arnd Bergmann To: viro@zeniv.linux.org.uk Cc: linux-fsdevel@vger.kernel.org, Arnd Bergmann , linux-kernel@vger.kernel.org Subject: [PATCH v2 17/17] compat_ioctl: remove last RAID handling code Date: Wed, 12 Sep 2018 17:13:09 +0200 Message-Id: <20180912151422.571531-8-arnd@arndb.de> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180912151422.571531-1-arnd@arndb.de> References: <20180912150142.157913-1-arnd@arndb.de> <20180912151422.571531-1-arnd@arndb.de> X-Provags-ID: V03:K1:AEEe1t3XhQfn/PQqO62RI0+kY7j5vpcJ3TN3YcTv288fi+qTxVD RRd4E4dIqFwdIfbM6RjGn3fbXFwX4QSF3kYQBJLjoDCi+k0qoZ6oXMjWZYOKtInOOF8zkKO reTGg+W17RvDVzi/voPLsKcWcIt4af5WcBYIyvnRznwtWFD4q5Gs+eXaFiQdrDP1Exmk/6T A42Z6DwrHGUU2Kd6Am3Og== X-UI-Out-Filterresults: notjunk:1; V01:K0:vBWb9bHl638=:DaDTBk/cWOEqEVkl/RSpuP GYzwHB0l7BzOHlVJkuXexfQOPRXCSSDuZ3JgBkianOrwW89RvcEggBCjFUg7gBqPFAAUNcHz/ gGEWG3odD1xt8BZgBhFqJF3BaLl9/pEPAYENRid587vekPDzQINehFTwJWmlVlNY0vjFcgZby dKUWvkwlVyVSII0rbt4q3+8zrhSi+IzmGpbCAJX+ZAkPHgw1nJFZud6npLsMPnXJH2ef8tkfY yMpW/v6rCFKW8lvxDzgjyBhTJ0MTudXvyFfJyx+wpCZz5tQCeEGbn3OqrtCIMGG/A6RdxGw9d 8PWJi+qNEWQLP++++Lb9sA2MXuY/Y9FsSTvbhZ4SU6v9SRr1+a15S6jeiixTuqmvXsMJnN56Q p1OsgiHy9lQvp63SYTDzGgndKoppfMgCuQKWrX7J9icDGdfQK+aKtoGQCrv/+TwScWQoGnPYQ XjX6pCt7+psZyQaPABmT0wjcOq6UrPx7uYbVMY/tToI2S+rFDefw7mlnFNmUmxtIJ77z0dhzt PVFEE/NMWD1hJZYg73bwd3YCeibGpKNjeXvQneCppz07hm5EGqhOxs9488Ziahsz+LP0qQUM1 9lcrXok35gqXheQYqIOB7eBPg9b9yl41D1ApAyvLs7vu23U6GPL9yqD/atDbO2m1/auC7mAO+ oYurw+ELfj+TgtPc8M+7F6QHeziX1NocQtZ3ncoRJIRhYTr7mQlBli1RnQiNcoRxK24A= 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 | 5 ----- 1 file changed, 5 deletions(-) -- 2.18.0 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index 79ad7c3afd70..37862bf91f44 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c @@ -911,11 +911,6 @@ static long do_ioctl_trans(unsigned int cmd, case TCSBRKP: case TIOCMIWAIT: case TIOCSCTTY: - /* RAID */ - case HOT_REMOVE_DISK: - case HOT_ADD_DISK: - case SET_DISK_FAULTY: - case SET_BITMAP_FILE: return vfs_ioctl(file, cmd, arg); }