cm4000_cs.c cmm_ioctl(): get rid of pointless access_ok()
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 23 Apr 2020 02:52:07 +0000 (22:52 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Fri, 29 May 2020 15:04:56 +0000 (11:04 -0400)
copy_to_user()/copy_from_user() for everything

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
drivers/char/pcmcia/cm4000_cs.c

index 4edb4174a1e287d11b65e0d2b67afe6d728ed2e3..89681f07bc787297fa1aae10afc7f500aea8a4bd 100644 (file)
@@ -1404,7 +1404,6 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
        unsigned int iobase = dev->p_dev->resource[0]->start;
        struct inode *inode = file_inode(filp);
        struct pcmcia_device *link;
-       int size;
        int rc;
        void __user *argp = (void __user *)arg;
 #ifdef CM4000_DEBUG
@@ -1441,19 +1440,6 @@ static long cmm_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                DEBUGP(4, dev, "iocnr mismatch\n");
                goto out;
        }
-       size = _IOC_SIZE(cmd);
-       rc = -EFAULT;
-       DEBUGP(4, dev, "iocdir=%.4x iocr=%.4x iocw=%.4x iocsize=%d cmd=%.4x\n",
-             _IOC_DIR(cmd), _IOC_READ, _IOC_WRITE, size, cmd);
-
-       if (_IOC_DIR(cmd) & _IOC_READ) {
-               if (!access_ok(argp, size))
-                       goto out;
-       }
-       if (_IOC_DIR(cmd) & _IOC_WRITE) {
-               if (!access_ok(argp, size))
-                       goto out;
-       }
        rc = 0;
 
        switch (cmd) {