aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/media/video/ivtv/ivtv-ioctl.c2
-rw-r--r--drivers/media/video/v4l2-ioctl.c12
-rw-r--r--include/media/v4l2-ioctl.h20
3 files changed, 22 insertions, 12 deletions
diff --git a/drivers/media/video/ivtv/ivtv-ioctl.c b/drivers/media/video/ivtv/ivtv-ioctl.c
index 09a75abcb478..4bae38d21ef6 100644
--- a/drivers/media/video/ivtv/ivtv-ioctl.c
+++ b/drivers/media/video/ivtv/ivtv-ioctl.c
@@ -1830,7 +1830,7 @@ static long ivtv_serialized_ioctl(struct ivtv *itv, struct file *filp,
1830 1830
1831 if (ivtv_debug & IVTV_DBGFLG_IOCTL) 1831 if (ivtv_debug & IVTV_DBGFLG_IOCTL)
1832 vfd->debug = V4L2_DEBUG_IOCTL | V4L2_DEBUG_IOCTL_ARG; 1832 vfd->debug = V4L2_DEBUG_IOCTL | V4L2_DEBUG_IOCTL_ARG;
1833 ret = video_ioctl2_unlocked(filp, cmd, arg); 1833 ret = __video_ioctl2(filp, cmd, arg);
1834 vfd->debug = 0; 1834 vfd->debug = 0;
1835 return ret; 1835 return ret;
1836} 1836}
diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index 5b3e251b9396..710e1a40c422 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -1768,7 +1768,7 @@ static int __video_do_ioctl(struct file *file,
1768 return ret; 1768 return ret;
1769} 1769}
1770 1770
1771int video_ioctl2(struct inode *inode, struct file *file, 1771int __video_ioctl2(struct file *file,
1772 unsigned int cmd, unsigned long arg) 1772 unsigned int cmd, unsigned long arg)
1773{ 1773{
1774 char sbuf[128]; 1774 char sbuf[128];
@@ -1860,11 +1860,11 @@ out:
1860 kfree(mbuf); 1860 kfree(mbuf);
1861 return err; 1861 return err;
1862} 1862}
1863EXPORT_SYMBOL(video_ioctl2); 1863EXPORT_SYMBOL(__video_ioctl2);
1864 1864
1865long video_ioctl2_unlocked(struct file *file, 1865int video_ioctl2(struct inode *inode, struct file *file,
1866 unsigned int cmd, unsigned long arg) 1866 unsigned int cmd, unsigned long arg)
1867{ 1867{
1868 return video_ioctl2(file->f_path.dentry->d_inode, file, cmd, arg); 1868 return __video_ioctl2(file, cmd, arg);
1869} 1869}
1870EXPORT_SYMBOL(video_ioctl2_unlocked); 1870EXPORT_SYMBOL(video_ioctl2);
diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
index 7a919433a423..e6ba25b3d7c8 100644
--- a/include/media/v4l2-ioctl.h
+++ b/include/media/v4l2-ioctl.h
@@ -284,15 +284,25 @@ int v4l_compat_translate_ioctl(struct file *file,
284extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd, 284extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd,
285 unsigned long arg); 285 unsigned long arg);
286 286
287extern int video_ioctl2(struct inode *inode, struct file *file,
288 unsigned int cmd, unsigned long arg);
289extern long video_ioctl2_unlocked(struct file *file,
290 unsigned int cmd, unsigned long arg);
291
292/* Include support for obsoleted stuff */ 287/* Include support for obsoleted stuff */
293extern int video_usercopy(struct inode *inode, struct file *file, 288extern int video_usercopy(struct inode *inode, struct file *file,
294 unsigned int cmd, unsigned long arg, 289 unsigned int cmd, unsigned long arg,
295 int (*func)(struct inode *inode, struct file *file, 290 int (*func)(struct inode *inode, struct file *file,
296 unsigned int cmd, void *arg)); 291 unsigned int cmd, void *arg));
297 292
293/* Standard handlers for V4L ioctl's */
294
295/* This prototype is used on fops.unlocked_ioctl */
296extern int __video_ioctl2(struct file *file,
297 unsigned int cmd, unsigned long arg);
298
299/* This prototype is used on fops.ioctl
300 * Since fops.ioctl enables Kernel Big Lock, it is preferred
301 * to use __video_ioctl2 instead.
302 * It should be noticed that there's no lock code inside
303 * video_ioctl2().
304 */
305extern int video_ioctl2(struct inode *inode, struct file *file,
306 unsigned int cmd, unsigned long arg);
307
298#endif /* _V4L2_IOCTL_H */ 308#endif /* _V4L2_IOCTL_H */