Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7cfe21aa authored by Stefan Richter's avatar Stefan Richter
Browse files

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: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 3ac26b2e
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -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);
}


@@ -2164,6 +2164,7 @@ static const struct file_operations dv1394_fops=
	.read =		dv1394_read,
	.release =	dv1394_release,
	.fasync =	dv1394_fasync,
	.llseek =	no_llseek,
};


+2 −1
Original line number Diff line number Diff line
@@ -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)
+3 −2
Original line number Diff line number Diff line
@@ -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 **********************************************************/