V4L/DVB (9909): em28xx: move dev->lock from res_free to the caller routines
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
@@ -617,10 +617,8 @@ static void res_free(struct em28xx_fh *fh)
|
|||||||
{
|
{
|
||||||
struct em28xx *dev = fh->dev;
|
struct em28xx *dev = fh->dev;
|
||||||
|
|
||||||
mutex_lock(&dev->lock);
|
|
||||||
fh->stream_on = 0;
|
fh->stream_on = 0;
|
||||||
dev->stream_on = 0;
|
dev->stream_on = 0;
|
||||||
mutex_unlock(&dev->lock);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1282,7 +1280,9 @@ static int vidioc_streamoff(struct file *file, void *priv,
|
|||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
|
|
||||||
videobuf_streamoff(&fh->vb_vidq);
|
videobuf_streamoff(&fh->vb_vidq);
|
||||||
|
mutex_lock(&dev->lock);
|
||||||
res_free(fh);
|
res_free(fh);
|
||||||
|
mutex_unlock(&dev->lock);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -1677,11 +1677,10 @@ static int em28xx_v4l2_close(struct inode *inode, struct file *filp)
|
|||||||
em28xx_videodbg("users=%d\n", dev->users);
|
em28xx_videodbg("users=%d\n", dev->users);
|
||||||
|
|
||||||
|
|
||||||
|
mutex_lock(&dev->lock);
|
||||||
if (res_check(fh))
|
if (res_check(fh))
|
||||||
res_free(fh);
|
res_free(fh);
|
||||||
|
|
||||||
mutex_lock(&dev->lock);
|
|
||||||
|
|
||||||
if (dev->users == 1) {
|
if (dev->users == 1) {
|
||||||
videobuf_stop(&fh->vb_vidq);
|
videobuf_stop(&fh->vb_vidq);
|
||||||
videobuf_mmap_free(&fh->vb_vidq);
|
videobuf_mmap_free(&fh->vb_vidq);
|
||||||
|
Reference in New Issue
Block a user