aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGregor Jasny <gjasny@web.de>2008-01-06 09:15:54 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2008-01-07 03:12:57 -0500
commitd9030f573031244dcffee026cc5e7e2f96f972ce (patch)
tree679f54e4b5fa4082a641c0f90151476bac71e7c0
parent3ce54450461bad18bbe1f9f5aa3ecd2f8e8d1235 (diff)
V4L/DVB (6944a): Fix Regression VIDIOCGMBUF ioctl hangs on bttv driver
Fix bttv VIDIOCGMBUF locking like done in commit 820eacd84cff23b76693f4be1e28feb672f4488f. Signed-off-by: Gregor Jasny <gjasny@web.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c
index c02d92deacd2..581a3c955739 100644
--- a/drivers/media/video/bt8xx/bttv-driver.c
+++ b/drivers/media/video/bt8xx/bttv-driver.c
@@ -3063,11 +3063,10 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
3063 struct video_mbuf *mbuf = arg; 3063 struct video_mbuf *mbuf = arg;
3064 unsigned int i; 3064 unsigned int i;
3065 3065
3066 mutex_lock(&fh->cap.lock);
3067 retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize, 3066 retval = videobuf_mmap_setup(&fh->cap,gbuffers,gbufsize,
3068 V4L2_MEMORY_MMAP); 3067 V4L2_MEMORY_MMAP);
3069 if (retval < 0) 3068 if (retval < 0)
3070 goto fh_unlock_and_return; 3069 return retval;
3071 3070
3072 gbuffers = retval; 3071 gbuffers = retval;
3073 memset(mbuf,0,sizeof(*mbuf)); 3072 memset(mbuf,0,sizeof(*mbuf));
@@ -3075,7 +3074,6 @@ static int bttv_do_ioctl(struct inode *inode, struct file *file,
3075 mbuf->size = gbuffers * gbufsize; 3074 mbuf->size = gbuffers * gbufsize;
3076 for (i = 0; i < gbuffers; i++) 3075 for (i = 0; i < gbuffers; i++)
3077 mbuf->offsets[i] = i * gbufsize; 3076 mbuf->offsets[i] = i * gbufsize;
3078 mutex_unlock(&fh->cap.lock);
3079 return 0; 3077 return 0;
3080 } 3078 }
3081 case VIDIOCMCAPTURE: 3079 case VIDIOCMCAPTURE: