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