[linux-dvb] ifconfig locks on down - B2C2 flexcop.

stonewall at inebraska.com stonewall at inebraska.com
Thu Jul 14 16:51:52 CEST 2005


Johannes - just to make sure I did this correctly; I patched in the below 
code, recompiled, rebooted just to make sure I was loading the new modules.  
I brought up each interface, then I hit each one with an ifconfig <dev> down, 
until it got to the last one, then it hung.  I hit Ctrl-C, and then:

# echo $?
130

I looked in syslog as well as dmesg, and found no "ARGH" reference or line.

I did see, however, the following upon creating the dvb0_? interfaces:

Jul 14 14:38:24 beryllium kernel: dvb_net: created network interface dvb0_0
Jul 14 14:38:24 beryllium net.agent[8019]: add event not handled
Jul 14 14:38:25 beryllium net.agent[8029]: add event not handled
Jul 14 14:38:25 beryllium net.agent[8039]: add event not handled
Jul 14 14:38:25 beryllium net.agent[8049]: add event not handled
Jul 14 14:38:25 beryllium kernel: dvb_net: created network interface dvb0_1
Jul 14 14:38:25 beryllium kernel: dvb_net: created network interface dvb0_2
Jul 14 14:38:25 beryllium kernel: dvb_net: created network interface dvb0_3
Jul 14 14:38:25 beryllium net.agent[8059]: add event not handled

And then when I went to bring down:

Jul 14 14:40:43 beryllium net.agent[8280]: remove event not handled

Since I see no ARGH line at console, syslog, or dmesg - can I assume we never 
even get to dmx_section_feed_release_filter call?

Stonewall

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




More information about the linux-dvb mailing list