summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Knorr <kraxel@bytesex.org>2005-01-25 04:52:00 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-25 04:52:00 -0800
commit4d96c2a7d2dbf21d06c8a481db22f5ad10fddad4 (patch)
tree0cd2208471ca8d021103c18c7fcc9b9874839726
parent64a7434798907ab71828af882c086e6806fef7da (diff)
[PATCH] v4l: video-buf update
- Fix a memory leak in video-buf.c - Small update for the video-buf-dvb.c module. Signed-off-by: Gerd Knorr <kraxel@bytesex.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/media/video/video-buf-dvb.c11
-rw-r--r--drivers/media/video/video-buf.c4
-rw-r--r--include/media/video-buf-dvb.h4
3 files changed, 13 insertions, 6 deletions
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c
index 6f3d6ace5b0a..31cc4ed9b747 100644
--- a/drivers/media/video/video-buf-dvb.c
+++ b/drivers/media/video/video-buf-dvb.c
@@ -1,5 +1,5 @@
/*
- * $Id: video-buf-dvb.c,v 1.5 2004/11/07 13:17:15 kraxel Exp $
+ * $Id: video-buf-dvb.c,v 1.7 2004/12/09 12:51:35 kraxel Exp $
*
* some helper function for simple DVB cards which simply DMA the
* complete transport stream and let the computer sort everything else
@@ -35,7 +35,7 @@ module_param(debug, int, 0644);
MODULE_PARM_DESC(debug,"enable debug messages");
#define dprintk(fmt, arg...) if (debug) \
- printk(KERN_DEBUG "%s/dvb: " fmt, dvb->name, ## arg)
+ printk(KERN_DEBUG "%s/dvb: " fmt, dvb->name , ## arg)
/* ------------------------------------------------------------------ */
@@ -134,19 +134,22 @@ static int videobuf_dvb_stop_feed(struct dvb_demux_feed *feed)
/* ------------------------------------------------------------------ */
-int videobuf_dvb_register(struct videobuf_dvb *dvb)
+int videobuf_dvb_register(struct videobuf_dvb *dvb,
+ struct module *module,
+ void *adapter_priv)
{
int result;
init_MUTEX(&dvb->lock);
/* register adapter */
- result = dvb_register_adapter(&dvb->adapter, dvb->name, THIS_MODULE);
+ result = dvb_register_adapter(&dvb->adapter, dvb->name, module);
if (result < 0) {
printk(KERN_WARNING "%s: dvb_register_adapter failed (errno = %d)\n",
dvb->name, result);
goto fail_adapter;
}
+ dvb->adapter->priv = adapter_priv;
/* register frontend */
result = dvb_register_frontend(dvb->adapter, dvb->frontend);
diff --git a/drivers/media/video/video-buf.c b/drivers/media/video/video-buf.c
index 7aa20cbce73d..5bac907dc9de 100644
--- a/drivers/media/video/video-buf.c
+++ b/drivers/media/video/video-buf.c
@@ -1,5 +1,5 @@
/*
- * $Id: video-buf.c,v 1.15 2004/11/07 14:45:00 kraxel Exp $
+ * $Id: video-buf.c,v 1.17 2004/12/10 12:33:40 kraxel Exp $
*
* generic helper functions for video4linux capture buffers, to handle
* memory management and PCI DMA. Right now bttv + saa7134 use it.
@@ -20,6 +20,7 @@
#include <linux/init.h>
#include <linux/module.h>
+#include <linux/moduleparam.h>
#include <linux/vmalloc.h>
#include <linux/pagemap.h>
#include <linux/slab.h>
@@ -892,6 +893,7 @@ void videobuf_read_stop(struct videobuf_queue *q)
int i;
videobuf_queue_cancel(q);
+ videobuf_mmap_free(q);
INIT_LIST_HEAD(&q->stream);
for (i = 0; i < VIDEO_MAX_FRAME; i++) {
if (NULL == q->bufs[i])
diff --git a/include/media/video-buf-dvb.h b/include/media/video-buf-dvb.h
index 53eac765a8bd..94bd33619aa5 100644
--- a/include/media/video-buf-dvb.h
+++ b/include/media/video-buf-dvb.h
@@ -24,7 +24,9 @@ struct videobuf_dvb {
struct dvb_net net;
};
-int videobuf_dvb_register(struct videobuf_dvb *dvb);
+int videobuf_dvb_register(struct videobuf_dvb *dvb,
+ struct module *module,
+ void *adapter_priv);
void videobuf_dvb_unregister(struct videobuf_dvb *dvb);
/*