Johannes - will do; it will be later tonight, but I will give it a try. If I cannot figure out where it should go, I'll drop you a line. Stone On Wednesday 13 July 2005 21:45, Johannes Stezenbach wrote: > Johannes Stezenbach wrote: > > One thing you could do is to add some debug to > > dmx_section_feed_release_filter, like: > > > > struct dvb_demux_filter *dvbdmxfilter = (struct dvb_demux_filter > > *) filter, *f; struct dvb_demux_feed *dvbdmxfeed = (struct dvb_demux_feed > > *) feed; struct dvb_demux *dvbdmx = dvbdmxfeed->demux; > > > > if (down_interruptible (&dvbdmx->mutex)) { > > printk("ARGH: %d\n", atomic_read(dvbdmx->mutex.count)); > > return -ERESTARTSYS; > > } > > > > If the mutex count is something != 0 or 1 the someone trashed > > the memory. > > Could you please try this, and when it hangs at shutdown, ^C ifconfig > and look if the ARGH line prints 0, 1 or something totally wild. > > Thanks, > Johannes