From 4d96c2a7d2dbf21d06c8a481db22f5ad10fddad4 Mon Sep 17 00:00:00 2001 From: Gerd Knorr Date: Tue, 25 Jan 2005 04:52:00 -0800 Subject: [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 Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds --- drivers/media/video/video-buf-dvb.c | 11 +++++++---- drivers/media/video/video-buf.c | 4 +++- include/media/video-buf-dvb.h | 4 +++- 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 #include +#include #include #include #include @@ -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); /* -- cgit v1.2.3