Stefan Seyfried schrieb: > On Tue, Jun 21, 2005 at 03:36:07PM +0200, Peter Beutner wrote: > >>Hi >>the patch removes the following things: > > >>- in the following code: >> if (!dmxdevfilter->feed.sec) >> break; >> dvb_dmxdev_feed_stop(dmxdevfilter); >> if (dmxdevfilter->filter.sec) >> The second check is senseless as it is only reached if >>dmxdevfilter->filter.sec is not NULL. > > > At least a comment why checking for !dmxdevfilter->feed.sec is also > safe for dmxdevfilter->filter.sec would not be too bad (it is not > obvious to me, although i must admit that i have never looked into > the dmxdev code). Argh, just ignore that part. attached updated patch: - remove void casts - not necessary to set filter state twice to STATE_FREE during dvb_dmxdev_init() Signed-off-by: Peter Beutner <p.beutner@xxxxxxx> -------------- next part -------------- Index: linux/drivers/media/dvb/dvb-core/dmxdev.c =================================================================== RCS file: /cvs/linuxtv/dvb-kernel/linux/drivers/media/dvb/dvb-core/dmxdev.c,v retrieving revision 1.41 diff -p -u -r1.41 dmxdev.c --- linux/drivers/media/dvb/dvb-core/dmxdev.c 12 Jun 2005 12:27:13 -0000 1.41 +++ linux/drivers/media/dvb/dvb-core/dmxdev.c 21 Jun 2005 21:27:15 -0000 @@ -42,12 +42,6 @@ MODULE_PARM_DESC(debug, "Turn on/off deb #define dprintk if (debug) printk -static inline struct dmxdev_filter * -dvb_dmxdev_file_to_filter(struct file *file) -{ - return (struct dmxdev_filter *) file->private_data; -} - static inline void dvb_dmxdev_buffer_init(struct dmxdev_buffer *buffer) { buffer->data=NULL; @@ -844,7 +838,7 @@ static ssize_t dvb_dmxdev_read_sec(struc static ssize_t dvb_demux_read(struct file *file, char __user *buf, size_t count, loff_t *ppos) { - struct dmxdev_filter *dmxdevfilter=dvb_dmxdev_file_to_filter(file); + struct dmxdev_filter *dmxdevfilter= file->private_data; int ret=0; if (down_interruptible(&dmxdevfilter->mutex)) @@ -865,7 +859,7 @@ dvb_demux_read(struct file *file, char _ static int dvb_demux_do_ioctl(struct inode *inode, struct file *file, unsigned int cmd, void *parg) { - struct dmxdev_filter *dmxdevfilter=dvb_dmxdev_file_to_filter(file); + struct dmxdev_filter *dmxdevfilter = file->private_data; struct dmxdev *dmxdev=dmxdevfilter->dev; unsigned long arg=(unsigned long) parg; int ret=0; @@ -962,7 +956,7 @@ static int dvb_demux_ioctl(struct inode static unsigned int dvb_demux_poll (struct file *file, poll_table *wait) { - struct dmxdev_filter *dmxdevfilter = dvb_dmxdev_file_to_filter(file); + struct dmxdev_filter *dmxdevfilter = file->private_data; unsigned int mask = 0; if (!dmxdevfilter) @@ -987,7 +981,7 @@ static unsigned int dvb_demux_poll (stru static int dvb_demux_release(struct inode *inode, struct file *file) { - struct dmxdev_filter *dmxdevfilter = dvb_dmxdev_file_to_filter(file); + struct dmxdev_filter *dmxdevfilter = file->private_data; struct dmxdev *dmxdev = dmxdevfilter->dev; return dvb_dmxdev_filter_free(dmxdev, dmxdevfilter); @@ -1111,7 +1105,6 @@ dvb_dmxdev_init(struct dmxdev *dmxdev, s dvb_dmxdev_filter_state_set(&dmxdev->filter[i], DMXDEV_STATE_FREE); dmxdev->dvr[i].dev=dmxdev; dmxdev->dvr[i].buffer.data=NULL; - dvb_dmxdev_filter_state_set(&dmxdev->filter[i], DMXDEV_STATE_FREE); dvb_dmxdev_dvr_state_set(&dmxdev->dvr[i], DMXDEV_STATE_FREE); }