[PATCH 1/5] v4l: Pushdown bkl into video_ioctl2

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Frederic Weisbecker
Date: Wednesday, April 28, 2010 - 8:42 pm

video_ioctl2 is a generic ioctl helper used by a lot of drivers.
Most of them put it as their bkl'ed .ioctl callback, then let's
pushdown the bkl inside but also provide an unlocked version for
those that use it as an unlocked ioctl.

Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
---
 drivers/media/video/v4l2-ioctl.c |   17 +++++++++++++++--
 include/media/v4l2-ioctl.h       |    2 ++
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
index 3da8d8f..0ff2595 100644
--- a/drivers/media/video/v4l2-ioctl.c
+++ b/drivers/media/video/v4l2-ioctl.c
@@ -16,6 +16,7 @@
 #include <linux/slab.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
+#include <linux/smp_lock.h>
 
 #define __OLD_VIDIOC_ /* To allow fixing old calls */
 #include <linux/videodev.h>
@@ -2007,8 +2008,8 @@ static unsigned long cmd_input_size(unsigned int cmd)
 	}
 }
 
-long video_ioctl2(struct file *file,
-	       unsigned int cmd, unsigned long arg)
+long video_ioctl2_unlocked(struct file *file,
+			   unsigned int cmd, unsigned long arg)
 {
 	char	sbuf[128];
 	void    *mbuf = NULL;
@@ -2102,4 +2103,16 @@ out:
 	kfree(mbuf);
 	return err;
 }
+EXPORT_SYMBOL(video_ioctl2_unlocked);
+
+long video_ioctl2(struct file *file, unsigned int cmd, unsigned long arg)
+{
+	long ret;
+
+	lock_kernel();
+	ret = video_ioctl2_unlocked(file, cmd, arg);
+	unlock_kernel();
+
+	return ret;
+}
 EXPORT_SYMBOL(video_ioctl2);
diff --git a/include/media/v4l2-ioctl.h b/include/media/v4l2-ioctl.h
index e8ba0f2..08b3e42 100644
--- a/include/media/v4l2-ioctl.h
+++ b/include/media/v4l2-ioctl.h
@@ -316,5 +316,7 @@ extern long video_usercopy(struct file *file, unsigned int cmd,
 /* Standard handlers for V4L ioctl's */
 extern long video_ioctl2(struct file *file,
 			unsigned int cmd, unsigned long arg);
+extern long video_ioctl2_unlocked(struct file *file,
+				  unsigned int cmd, unsigned long arg);
 
 #endif /* _V4L2_IOCTL_H */
-- 
1.6.2.3

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[PATCH 08/10] v4l: always use unlocked_ioctl, John Kacur, (Tue Apr 27, 2:18 am)
Re: [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes, Frederic Weisbecker, (Tue Apr 27, 5:40 am)
Re: [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes, Frederic Weisbecker, (Tue Apr 27, 5:41 am)
Re: [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes, Geert Uytterhoeven, (Tue Apr 27, 5:51 am)
[PATCH 0/6] BKL pushdown into ioctl, continued, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 1/7] logfs: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 2/7] hfsplus: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 3/7] cris: push down BKL into some device drivers, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 4/7] sn_hwperf: kill BKL usage, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 5/7] um/mmapper: remove BKL usage, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 6/7] coda/psdev: remove BKL from ioctl function, Arnd Bergmann, (Tue Apr 27, 7:24 am)
[PATCH 7/7] smbfs: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 7:24 am)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 7:32 am)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 8:05 am)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Linus Torvalds, (Tue Apr 27, 8:36 am)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Arnd Bergmann, (Tue Apr 27, 8:38 am)
Re: [PATCH 3/7] cris: push down BKL into some device drivers, Frederic Weisbecker, (Tue Apr 27, 10:22 am)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Frederic Weisbecker, (Tue Apr 27, 12:59 pm)
Re: [PATCH 1/7] logfs: push down BKL into ioctl function, Frederic Weisbecker, (Tue Apr 27, 1:12 pm)
[PATCH] logfs: kill BKL, Arnd Bergmann, (Tue Apr 27, 1:30 pm)
Re: [PATCH 10/10] bkl: Fix-up compile problems as a result ..., Mauro Carvalho Chehab, (Wed Apr 28, 5:24 am)
Re: [PATCH 10/10] bkl: Fix-up compile problems as a result ..., Mauro Carvalho Chehab, (Wed Apr 28, 7:46 am)
Re: [PATCH 00/10] bkl: pushdowns from Arnd, and compile fixes, Frederic Weisbecker, (Wed Apr 28, 2:18 pm)
Re: [PATCH 10/10] bkl: Fix-up compile problems as a result ..., Frederic Weisbecker, (Wed Apr 28, 2:52 pm)
[PATCH 0/5] Pushdown bkl from v4l ioctls, Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
[PATCH 1/5] v4l: Pushdown bkl into video_ioctl2, Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
[PATCH 2/5] v4l: Use video_ioctl2_unlocked from drivers th ..., Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
[PATCH 3/5] v4l: Change users of video_ioctl2 to use unloc ..., Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
[PATCH 4/5] v4l: Pushdown bkl to drivers that implement th ..., Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
[PATCH 5/5] v4l: Remove struct v4l2_file_operations::ioctl, Frederic Weisbecker, (Wed Apr 28, 8:42 pm)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Hans Verkuil, (Wed Apr 28, 11:44 pm)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Laurent Pinchart, (Thu Apr 29, 12:10 am)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Arnd Bergmann, (Thu Apr 29, 12:38 am)
Re: [PATCH 3/7] cris: push down BKL into some device drivers, Jesper Nilsson, (Fri Apr 30, 12:53 am)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Hans Verkuil, (Sat May 1, 2:55 am)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Arnd Bergmann, (Sat May 1, 3:47 am)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Alan Cox, (Sat May 1, 4:11 am)
Re: [PATCH 0/5] Pushdown bkl from v4l ioctls, Frederic Weisbecker, (Sat May 1, 7:58 am)
Re: [PATCH 3/7] cris: push down BKL into some device drivers, Frederic Weisbecker, (Sun May 16, 7:51 pm)
Re: [PATCH] logfs: kill BKL, Frederic Weisbecker, (Wed May 19, 5:51 am)