V4L/DVB (6615): V4L: Fix VIDIOCGMBUF locking in saa7146
authorBrandon Philips <brandon@ifup.org>
Mon, 19 Nov 2007 18:10:48 +0000 (15:10 -0300)
committerMauro Carvalho Chehab <mchehab@infradead.org>
Tue, 11 Dec 2007 20:08:12 +0000 (18:08 -0200)
Fallout from videobuf_mmap_setup() locking fixes.

Signed-off-by: Brandon Philips <bphilips@suse.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
drivers/media/common/saa7146_video.c

index 7cc4213..ae36d10 100644 (file)
@@ -1205,13 +1205,10 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
                DEB_D(("VIDIOCGMBUF \n"));
 
                q = &fh->video_q;
-               mutex_lock(&q->lock);
                err = videobuf_mmap_setup(q,gbuffers,gbufsize,
                                          V4L2_MEMORY_MMAP);
-               if (err < 0) {
-                       mutex_unlock(&q->lock);
+               if (err < 0)
                        return err;
-               }
 
                gbuffers = err;
                memset(mbuf,0,sizeof(*mbuf));
@@ -1219,7 +1216,6 @@ int saa7146_video_do_ioctl(struct inode *inode, struct file *file, unsigned int
                mbuf->size   = gbuffers * gbufsize;
                for (i = 0; i < gbuffers; i++)
                        mbuf->offsets[i] = i * gbufsize;
-               mutex_unlock(&q->lock);
                return 0;
        }
 #endif