diff options
-rw-r--r-- | drivers/media/video/ivtv/ivtv-ioctl.c | 2 | ||||
-rw-r--r-- | drivers/media/video/v4l2-ioctl.c | 12 | ||||
-rw-r--r-- | include/media/v4l2-ioctl.h | 20 |
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 | ||
1771 | int video_ioctl2(struct inode *inode, struct file *file, | 1771 | int __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 | } |
1863 | EXPORT_SYMBOL(video_ioctl2); | 1863 | EXPORT_SYMBOL(__video_ioctl2); |
1864 | 1864 | ||
1865 | long video_ioctl2_unlocked(struct file *file, | 1865 | int 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 | } |
1870 | EXPORT_SYMBOL(video_ioctl2_unlocked); | 1870 | EXPORT_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, | |||
284 | extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd, | 284 | extern long v4l_compat_ioctl32(struct file *file, unsigned int cmd, |
285 | unsigned long arg); | 285 | unsigned long arg); |
286 | 286 | ||
287 | extern int video_ioctl2(struct inode *inode, struct file *file, | ||
288 | unsigned int cmd, unsigned long arg); | ||
289 | extern 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 */ |
293 | extern int video_usercopy(struct inode *inode, struct file *file, | 288 | extern 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 */ | ||
296 | extern 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 | */ | ||
305 | extern 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 */ |