Mailing List archive

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

[linux-dvb] Re: [PATCH] support for multiple feeds per pid



> I think you might like to read the following documents:
> http://kernelnewbies.org/documents/kdoc/kernel-locking/lklockingguide.html
> http://lwn.net/Articles/21064/

Right, I gave'em a glance, peeked at some real code in kernel
and found that:

tasklet locking is not done as suggested by the doc.

in sw_demux, locking is based on hardware interrput 
spin_lock_irq(), instead of tasklet spin_lock_bh().

Locking on hard irq is not correct, because hard irq doesn't
access any sw_demux data. data is accessed outside of
hard irq, later in tasklet.

I *GUESS/COMMENTS_PLEASE* vpeirq() only reads (doesnt
write) sw_demux structure, so

it can call sw_demux_packets_whatever with read-only 
lock request:

 read_lock(demux)

while ioctl, while updating sw_demux should request 
write-lock with 

 write_lock_bh(demux)

Emard


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



Home | Main Index | Thread Index