Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Problems with TechnoTrend dec2000-t USB



Johannes Stezenbach writes:
 > Holger Waechtler wrote:
 > > >If you get a kernel panic, then it's not your fault, but a bug in the 
 > > >code.  If you don't require a dvb net interface, try playing with tzap 
 > > >from the linux-dvb pre-release tarball.  Hopefully I'll get a chance to 
 > > >look at fixing the problem soon.
 > > 
 > > The problem is that the software demux feeds the network interface in 
 > > interrupt context, the network code is then trying to sleep and that's 
 > > not allowed. Thus the BUG() call.
 > > 
 > > The USB DVB drivers need to use tasklets like the PCI DVB drivers too, 
 > > thenafter you can use the DVB network interface, too.
 > 
 > I don't think so. For one, tasklets can't sleep either. And the network
 > code is explicitely written to pass network packets from interrupt
 > context to the network layer (because that's how network interface
 > hardware usually works).

Correct.
 
 > IIRC there is a race condition at ifconfig time, and a solution was described


The main problem is that almost all network control calls of a network
driver (here dvb_net) for setting MAC, multicast filters, etc., are 
called from the network layer in interrupt context. Any drivers 
which might sleep when setting filters (av7110, USB) can thus cause
a schedule to be called during interrupt which will cause BUG() 
to be called (see schedule() in linux/kernel/sched.c).

This problem can even occur with all drivers because the filter
handling functions in the software demux layer use semaphores and a
down()/down_interruptible() can go to sleep. But this does not happen
often because usually nobody uses other filters when using networking.
Even if you do the setting or releasing of the filter would have to occur
at the same time (network layer calls dvb_net while other filter call
is just "inside semaphore") to trigger the bug.

Also see my posts regarding this last February.

 > by on of the Metzlers here on this list some months ago. Maybe it's even
 > fixed in their driver.

It is fixed in our CVS but not released yet.
We'll have to carefully check first what we can include before 
making a new release. Some driver parts like e.g. for TDA10021/10046 
or for KNC CI cannot yet be released by us and we will have to make
proper adjustments.


Ralph


-- 
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index