ieee1394: mark char device files as not seekable
The - raw1394 (/dev/raw1394), - video1394 (/dev/video1394/*), - dv1394 (/dev/dv1394/*) character device file ABIs do not make any use of lseek(), pread(), or pwrite(). Therefore use nonseekable_open() and, redundantly, set file_operations.llseek to no_llseek to remove any doubt whether the BKL- grabbing default_llseek handler is used. Although all this is legacy code which should be left in peace until it is eventually removed (as it is superseded by firewire-core's <linux/firewire-cdev.h> ABI), this change seems still worth doing to further minimize the presence of BKL usage in the kernel. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
parent
3ac26b2ee3
commit
7cfe21aae1
3 changed files with 11 additions and 8 deletions
|
@ -1824,7 +1824,7 @@ static int dv1394_open(struct inode *inode, struct file *file)
|
|||
"and will not be available in the new firewire driver stack. "
|
||||
"Try libraw1394 based programs instead.\n", current->comm);
|
||||
|
||||
return 0;
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
|
||||
|
@ -2153,17 +2153,18 @@ static struct cdev dv1394_cdev;
|
|||
static const struct file_operations dv1394_fops=
|
||||
{
|
||||
.owner = THIS_MODULE,
|
||||
.poll = dv1394_poll,
|
||||
.poll = dv1394_poll,
|
||||
.unlocked_ioctl = dv1394_ioctl,
|
||||
#ifdef CONFIG_COMPAT
|
||||
.compat_ioctl = dv1394_compat_ioctl,
|
||||
#endif
|
||||
.mmap = dv1394_mmap,
|
||||
.open = dv1394_open,
|
||||
.write = dv1394_write,
|
||||
.read = dv1394_read,
|
||||
.write = dv1394_write,
|
||||
.read = dv1394_read,
|
||||
.release = dv1394_release,
|
||||
.fasync = dv1394_fasync,
|
||||
.fasync = dv1394_fasync,
|
||||
.llseek = no_llseek,
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -2834,7 +2834,7 @@ static int raw1394_open(struct inode *inode, struct file *file)
|
|||
|
||||
file->private_data = fi;
|
||||
|
||||
return 0;
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
static int raw1394_release(struct inode *inode, struct file *file)
|
||||
|
@ -3035,6 +3035,7 @@ static const struct file_operations raw1394_fops = {
|
|||
.poll = raw1394_poll,
|
||||
.open = raw1394_open,
|
||||
.release = raw1394_release,
|
||||
.llseek = no_llseek,
|
||||
};
|
||||
|
||||
static int __init init_raw1394(void)
|
||||
|
|
|
@ -1239,7 +1239,7 @@ static int video1394_open(struct inode *inode, struct file *file)
|
|||
ctx->current_ctx = NULL;
|
||||
file->private_data = ctx;
|
||||
|
||||
return 0;
|
||||
return nonseekable_open(inode, file);
|
||||
}
|
||||
|
||||
static int video1394_release(struct inode *inode, struct file *file)
|
||||
|
@ -1287,7 +1287,8 @@ static const struct file_operations video1394_fops=
|
|||
.poll = video1394_poll,
|
||||
.mmap = video1394_mmap,
|
||||
.open = video1394_open,
|
||||
.release = video1394_release
|
||||
.release = video1394_release,
|
||||
.llseek = no_llseek,
|
||||
};
|
||||
|
||||
/*** HOTPLUG STUFF **********************************************************/
|
||||
|
|
Loading…
Reference in a new issue