summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@redhat.com>2008-10-21 12:58:39 -0200
committerMauro Carvalho Chehab <mchehab@redhat.com>2008-10-21 12:58:39 -0200
commit9bb0976b93978009b15477a0809c54f5e6fe8594 (patch)
tree345994c69b6efa50a71ad0c52fe097e856941304
parent04aa4b62d67d07cdb0a26eff8eb37482dea62b42 (diff)
downloadmediapointer-dvb-s2-9bb0976b93978009b15477a0809c54f5e6fe8594.tar.gz
mediapointer-dvb-s2-9bb0976b93978009b15477a0809c54f5e6fe8594.tar.bz2
Remove unused inode parameter from video_ioctl2
From: Mauro Carvalho Chehab <mchehab@redhat.com> inode is never used on video_ioctl2. Remove it and rename the function to __video_ioctl2. This allows its usage directly as a callback at fops.unlocked_ioctl. Since we still need a callback with inode to be used with fops.ioctl, this patch adds video_ioctl2() that is just a call to __video_ioctl2(). Also, this patch adds some comments about video_ioctl2 and __video_ioctl2 usage at v4l2-ioctl.h. Priority: normal Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
-rw-r--r--linux/drivers/media/video/ivtv/ivtv-ioctl.c2
-rw-r--r--linux/drivers/media/video/v4l2-ioctl.c16
-rw-r--r--linux/include/media/v4l2-ioctl.h20
3 files changed, 22 insertions, 16 deletions
diff --git a/linux/drivers/media/video/ivtv/ivtv-ioctl.c b/linux/drivers/media/video/ivtv/ivtv-ioctl.c
index 09a75abcb..4bae38d21 100644
--- a/linux/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/linux/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -1830,7 +1830,7 @@ static long ivtv_serialized_ioctl(struct ivtv *itv, struct file *filp,
if (ivtv_debug & IVTV_DBGFLG_IOCTL)
vfd->debug = V4L2_DEBUG_IOCTL | V4L2_DEBUG_IOCTL_ARG;
- ret = video_ioctl2_unlocked(filp, cmd, arg);
+ ret = __video_ioctl2(filp, cmd, arg);
vfd->debug = 0;
return ret;
}
diff --git a/linux/drivers/media/video/v4l2-ioctl.c b/linux/drivers/media/video/v4l2-ioctl.c
index 301000661..a6f76c960 100644
--- a/linux/drivers/media/video/v4l2-ioctl.c
+++ b/linux/drivers/media/video/v4l2-ioctl.c
@@ -1769,7 +1769,7 @@ static int __video_do_ioctl(struct file *file,
return ret;
}
-int video_ioctl2(struct inode *inode, struct file *file,
+int __video_ioctl2(struct file *file,
unsigned int cmd, unsigned long arg)
{
char sbuf[128];
@@ -1861,15 +1861,11 @@ out:
kfree(mbuf);
return err;
}
-EXPORT_SYMBOL(video_ioctl2);
+EXPORT_SYMBOL(__video_ioctl2);
-long video_ioctl2_unlocked(struct file *file,
- unsigned int cmd, unsigned long arg)
+int video_ioctl2(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg)
{
-#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 20)
- return video_ioctl2(file->f_dentry->d_inode, file, cmd, arg);
-#else
- return video_ioctl2(file->f_path.dentry->d_inode, file, cmd, arg);
-#endif
+ return __video_ioctl2(file, cmd, arg);
}
-EXPORT_SYMBOL(video_ioctl2_unlocked);
+EXPORT_SYMBOL(video_ioctl2);
diff --git a/linux/include/media/v4l2-ioctl.h b/linux/include/media/v4l2-ioctl.h
index 7a919433a..e6ba25b3d 100644
--- a/linux/include/media/v4l2-ioctl.h
+++ b/linux/include/media/v4l2-ioctl.h
@@ -284,15 +284,25 @@ int v4l_compat_translate_ioctl(struct file *file,
extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,
unsigned long arg);
-extern int video_ioctl2(struct inode *inode, struct file *file,
- unsigned int cmd, unsigned long arg);
-extern long video_ioctl2_unlocked(struct file *file,
- unsigned int cmd, unsigned long arg);
-
/* Include support for obsoleted stuff */
extern int video_usercopy(struct inode *inode, struct file *file,
unsigned int cmd, unsigned long arg,
int (*func)(struct inode *inode, struct file *file,
unsigned int cmd, void *arg));
+/* Standard handlers for V4L ioctl's */
+
+/* This prototype is used on fops.unlocked_ioctl */
+extern int __video_ioctl2(struct file *file,
+ unsigned int cmd, unsigned long arg);
+
+/* This prototype is used on fops.ioctl
+ * Since fops.ioctl enables Kernel Big Lock, it is preferred
+ * to use __video_ioctl2 instead.
+ * It should be noticed that there's no lock code inside
+ * video_ioctl2().
+ */
+extern int video_ioctl2(struct inode *inode, struct file *file,
+ unsigned int cmd, unsigned long arg);
+
#endif /* _V4L2_IOCTL_H */