HI > I think that spin_lock_irq() is "stronger" than spin_lock_bh(). > On SMP the critical region will be protected by the spin lock, > on UP you can't get interrupted when irqs are disabled. But > it is of course more efficient to not to lock irqs when not > necessary, that's the whole point of using tasklets.
It is stronger, but from some people machine lockup reports (machine hosed, ICMP PING still working) I think that this lock happens during execution of hardware irq, and it's (sometimes) released before finish of tasklet execution (after the hardware irq has finished), while it should be actually keep locked after the hardware irq, during the tasklet running and then released. So we can replace them in dvb_demux.c with spin_lock_bh() and test it a bit if it still works after the change :-)? > Generally, using read locks is an optimization, allowing for multiple > concurrent readers. If there are no concurrent readers, then the > optimization is useless. Wise thinking! There's mostly one big reader to this structures so read optimization is just un-neccesary luxus from practical point of view Emard -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe linux-dvb" as subject.
