V4L/DVB (9909): em28xx: move dev->lock from res_free to the caller routines

Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
diff --git a/drivers/media/video/em28xx/em28xx-video.c b/drivers/media/video/em28xx/em28xx-video.c
index 6e558d2..90aedae 100644
--- a/drivers/media/video/em28xx/em28xx-video.c
+++ b/drivers/media/video/em28xx/em28xx-video.c
@@ -617,10 +617,8 @@
 {
 	struct em28xx    *dev = fh->dev;
 
-	mutex_lock(&dev->lock);
 	fh->stream_on = 0;
 	dev->stream_on = 0;
-	mutex_unlock(&dev->lock);
 }
 
 /*
@@ -1282,7 +1280,9 @@
 		return -EINVAL;
 
 	videobuf_streamoff(&fh->vb_vidq);
+	mutex_lock(&dev->lock);
 	res_free(fh);
+	mutex_unlock(&dev->lock);
 
 	return 0;
 }
@@ -1677,11 +1677,10 @@
 	em28xx_videodbg("users=%d\n", dev->users);
 
 
+	mutex_lock(&dev->lock);
 	if (res_check(fh))
 		res_free(fh);
 
-	mutex_lock(&dev->lock);
-
 	if (dev->users == 1) {
 		videobuf_stop(&fh->vb_vidq);
 		videobuf_mmap_free(&fh->vb_vidq);