v4l: video-buf update
PATCH 1/1 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 <[email protected]>
--- 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(-)
drivers/media/video/video-buf.c +3 -1
@@ -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_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])
drivers/media/video/video-buf-dvb.c +7 -4
@@ -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/* ------------------------------------------------------------------ */ -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);
include/media/video-buf-dvb.h +3 -1
@@ -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);/*
Signature · 1 line
#define printk(args...) fprintf(stderr, ## args)