It is necessary to release the allocated pgtables in buffer_release. It
is now done only in buffer_prepare. This will not work if a new
videobuf_buffer has been requested since the last call, as the former
pointers are lost.
Signed-off-by: johann.friedrichs@xxxxxx
--- a/drivers/media/common/saa7146_video.c 2009-04-17
21:42:35.000000000 +0200
+++ b/drivers/media/common/saa7146_video.c 2009-09-22
09:03:50.000000000 +0200
@@ -1331,6 +1331,9 @@ static void buffer_release(struct videob
DEB_CAP(("vbuf:%p\n",vb));
saa7146_dma_free(dev,q,buf);
+ saa7146_pgtable_free(dev->pci, &buf->pt[0]);
+ saa7146_pgtable_free(dev->pci, &buf->pt[1]);
+ saa7146_pgtable_free(dev->pci, &buf->pt[2]);
}
static struct videobuf_queue_ops video_qops = {
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html