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:
Ian Abbott 2014-05-27 15:06:17 +01:00 коммит произвёл Greg Kroah-Hartman
Родитель 260c0f73be
Коммит a5897f7760
2 изменённых файлов: 0 добавлений и 27 удалений

Просмотреть файл

@ -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;