mirror of
https://github.com/torvalds/linux.git
synced 2024-11-05 19:41:54 +00:00
staging: comedi: remove in_request_module
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 <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
260c0f73be
commit
a5897f7760
@ -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;
|
||||
|
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user