The `in_request_module` member of `struct comedi_device` is only ever
set to `false`, so remove the code that checks for it being `true` and
remove the member.

Signed-off-by: Ian Abbott <abbo...@mev.co.uk>
---
For "staging-next".
---
 drivers/staging/comedi/comedi_fops.c | 26 --------------------------
 drivers/staging/comedi/comedidev.h   |  1 -
 2 files changed, 27 deletions(-)

diff --git a/drivers/staging/comedi/comedi_fops.c 
b/drivers/staging/comedi/comedi_fops.c
index 70ad00c..9d99fb3 100644
--- a/drivers/staging/comedi/comedi_fops.c
+++ b/drivers/staging/comedi/comedi_fops.c
@@ -2327,38 +2327,12 @@ static int comedi_open(struct inode *inode, struct file 
*file)
                return -ENODEV;
        }
 
-       /* This is slightly hacky, but we want module autoloading
-        * to work for root.
-        * case: user opens device, attached -> ok
-        * case: user opens device, unattached, !in_request_module -> autoload
-        * case: user opens device, unattached, in_request_module -> fail
-        * case: root opens device, attached -> ok
-        * case: root opens device, unattached, in_request_module -> ok
-        *   (typically called from modprobe)
-        * case: root opens device, unattached, !in_request_module -> autoload
-        *
-        * The last could be changed to "-> ok", which would deny root
-        * autoloading.
-        */
        mutex_lock(&dev->mutex);
-       if (dev->attached)
-               goto ok;
-       if (!capable(CAP_NET_ADMIN) && dev->in_request_module) {
-               dev_dbg(dev->class_dev, "in request module\n");
-               rc = -ENODEV;
-               goto out;
-       }
-       if (capable(CAP_NET_ADMIN) && dev->in_request_module)
-               goto ok;
-
-       dev->in_request_module = false;
-
        if (!dev->attached && !capable(CAP_NET_ADMIN)) {
                dev_dbg(dev->class_dev, "not attached and not CAP_NET_ADMIN\n");
                rc = -ENODEV;
                goto out;
        }
-ok:
        if (dev->attached && dev->use_count == 0) {
                if (!try_module_get(dev->driver->module)) {
                        rc = -ENOSYS;
diff --git a/drivers/staging/comedi/comedidev.h 
b/drivers/staging/comedi/comedidev.h
index d07d47f..8f4e44b 100644
--- a/drivers/staging/comedi/comedidev.h
+++ b/drivers/staging/comedi/comedidev.h
@@ -180,7 +180,6 @@ struct comedi_device {
        const char *board_name;
        const void *board_ptr;
        bool attached:1;
-       bool in_request_module:1;
        bool ioenabled:1;
        spinlock_t spinlock;
        struct mutex mutex;
-- 
1.9.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to