Explorar o código

Merge branch 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6

* 'v4l_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
  saa7146: stop DMA before de-allocating DMA scatter/gather page buffers
  V4L/DVB: saa7134: remove stray unlock_kernel
Linus Torvalds %!s(int64=15) %!d(string=hai) anos
pai
achega
c031d52cac

+ 2 - 2
drivers/media/common/saa7146_video.c

@@ -1333,9 +1333,9 @@ static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb)
 
 
 	DEB_CAP(("vbuf:%p\n",vb));
 	DEB_CAP(("vbuf:%p\n",vb));
 
 
-	release_all_pagetables(dev, buf);
-
 	saa7146_dma_free(dev,q,buf);
 	saa7146_dma_free(dev,q,buf);
+
+	release_all_pagetables(dev, buf);
 }
 }
 
 
 static struct videobuf_queue_ops video_qops = {
 static struct videobuf_queue_ops video_qops = {

+ 3 - 5
drivers/media/video/saa7134/saa7134-empress.c

@@ -93,9 +93,9 @@ static int ts_open(struct file *file)
 	dprintk("open dev=%s\n", video_device_node_name(vdev));
 	dprintk("open dev=%s\n", video_device_node_name(vdev));
 	err = -EBUSY;
 	err = -EBUSY;
 	if (!mutex_trylock(&dev->empress_tsq.vb_lock))
 	if (!mutex_trylock(&dev->empress_tsq.vb_lock))
-		goto done;
+		return err;
 	if (atomic_read(&dev->empress_users))
 	if (atomic_read(&dev->empress_users))
-		goto done_up;
+		goto done;
 
 
 	/* Unmute audio */
 	/* Unmute audio */
 	saa_writeb(SAA7134_AUDIO_MUTE_CTRL,
 	saa_writeb(SAA7134_AUDIO_MUTE_CTRL,
@@ -105,10 +105,8 @@ static int ts_open(struct file *file)
 	file->private_data = dev;
 	file->private_data = dev;
 	err = 0;
 	err = 0;
 
 
-done_up:
-	mutex_unlock(&dev->empress_tsq.vb_lock);
 done:
 done:
-	unlock_kernel();
+	mutex_unlock(&dev->empress_tsq.vb_lock);
 	return err;
 	return err;
 }
 }