[linux-dvb] Kernel panic w/ CVS drivers and Nexus-CA / TT C2300
OT (rev 2.3)
romieu at fr.zoreil.com
Thu Apr 21 23:24:42 CEST 2005
Johannes Stezenbach <js at linuxtv.org> :
> > The driver does too much (slow) things in its softirq part. A part of it
> > should probably be posted to a workqueue. Doable but it is not a 5min hack.
> What exactly is too slow to do from a tasklet?
Any code which can go to sleep. For instance:
-> dvb_dmx_swfilter_packets (spin_locks: so far, so good)
! Issues down_interruptible: broken because of spinlock above or
! tasklet/softirq context (pick one).
! Can issue msleep like crazy: broken (same reason)
-> rdebi (spin_lock_irqsaves: ok)
! It does not sleep but it busy waits up to 50 ms (presumably when hardware
! is kaputt, I can buy that but please remember that the days of matrox induced
! bus stalls are not _that_ far), 2 times. Btw I am not convinced that it is
! safe to expect jiffies to be updated when in code protected by a
Don't hesitate to educate me if I am wrong but this code seems severely
broken wrt locking rules (not that it prevents to be useful/workable for
a lot of people :o) ).
More information about the linux-dvb