mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-28 01:21:58 +00:00
drivers: Push down BKL into various drivers
These are the last remaining device drivers using the ->ioctl file operation in the drivers directory (except from v4l drivers). [fweisbec: drop i8k pushdown as it has been done from procfs pushdown branch already] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
This commit is contained in:
parent
703c631ebb
commit
55929332c9
23 changed files with 280 additions and 115 deletions
|
@ -121,13 +121,17 @@ static int raw_release(struct inode *inode, struct file *filp)
|
|||
/*
|
||||
* Forward ioctls to the underlying block device.
|
||||
*/
|
||||
static int
|
||||
raw_ioctl(struct inode *inode, struct file *filp,
|
||||
unsigned int command, unsigned long arg)
|
||||
static long
|
||||
raw_ioctl(struct file *filp, unsigned int command, unsigned long arg)
|
||||
{
|
||||
struct block_device *bdev = filp->private_data;
|
||||
int ret;
|
||||
|
||||
return blkdev_ioctl(bdev, 0, command, arg);
|
||||
lock_kernel();
|
||||
ret = blkdev_ioctl(bdev, 0, command, arg);
|
||||
unlock_kernel();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void bind_device(struct raw_config_request *rq)
|
||||
|
@ -141,13 +145,14 @@ static void bind_device(struct raw_config_request *rq)
|
|||
* Deal with ioctls against the raw-device control interface, to bind
|
||||
* and unbind other raw devices.
|
||||
*/
|
||||
static int raw_ctl_ioctl(struct inode *inode, struct file *filp,
|
||||
unsigned int command, unsigned long arg)
|
||||
static long raw_ctl_ioctl(struct file *filp, unsigned int command,
|
||||
unsigned long arg)
|
||||
{
|
||||
struct raw_config_request rq;
|
||||
struct raw_device_data *rawdev;
|
||||
int err = 0;
|
||||
|
||||
lock_kernel();
|
||||
switch (command) {
|
||||
case RAW_SETBIND:
|
||||
case RAW_GETBIND:
|
||||
|
@ -240,25 +245,26 @@ static int raw_ctl_ioctl(struct inode *inode, struct file *filp,
|
|||
break;
|
||||
}
|
||||
out:
|
||||
unlock_kernel();
|
||||
return err;
|
||||
}
|
||||
|
||||
static const struct file_operations raw_fops = {
|
||||
.read = do_sync_read,
|
||||
.aio_read = generic_file_aio_read,
|
||||
.write = do_sync_write,
|
||||
.aio_write = blkdev_aio_write,
|
||||
.fsync = blkdev_fsync,
|
||||
.open = raw_open,
|
||||
.release= raw_release,
|
||||
.ioctl = raw_ioctl,
|
||||
.owner = THIS_MODULE,
|
||||
.read = do_sync_read,
|
||||
.aio_read = generic_file_aio_read,
|
||||
.write = do_sync_write,
|
||||
.aio_write = blkdev_aio_write,
|
||||
.fsync = blkdev_fsync,
|
||||
.open = raw_open,
|
||||
.release = raw_release,
|
||||
.unlocked_ioctl = raw_ioctl,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static const struct file_operations raw_ctl_fops = {
|
||||
.ioctl = raw_ctl_ioctl,
|
||||
.open = raw_open,
|
||||
.owner = THIS_MODULE,
|
||||
.unlocked_ioctl = raw_ctl_ioctl,
|
||||
.open = raw_open,
|
||||
.owner = THIS_MODULE,
|
||||
};
|
||||
|
||||
static struct cdev raw_cdev;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue