On Sat, Jan 23, 2010 at 12:42 AM, Devin Heitmueller <dheitmueller@xxxxxxxxxxxxxx> wrote: > On Fri, Jan 22, 2010 at 3:22 PM, Manu Abraham <abraham.manu@xxxxxxxxx> wrote: >> On Fri, Jan 22, 2010 at 11:40 PM, Devin Heitmueller >> <dheitmueller@xxxxxxxxxxxxxx> wrote: >>> Also, the dvb_frontend.c makes calls to i2c_gate_ctrl() at various >>> points, so you would need to ensure that none of those occur before >>> calling into your driver as there could potentially be a deadlock >>> there too. >> >> Ok, thanks for the pointer. The gate control is never called >> externally in reality. I will wait a little while for this patch to be >> applied. It removes the exported function and thereby an unnecessary >> dereference. >> >> http://jusst.de/hg/stv090x/rev/b3d28f5b2b53 > > If it never needs to be called externally, then removing it from the > dvb_frontend_ops does eliminate the risk entirely. Yup. > The case I > frequently see it called from dvb_frontend.c is for powering down the > tuner when the dvb frontend thread shuts down. No, rather on frontend shutdown, demodulator sleep() is called instead. demodulator sleep() shuts down the tuner, AFAIR. This is the original and correct behaviour for dvb frontend. I don't know if there are any instances in which tuner initial shutdown is proper, from the top of my head. I haven't looked whether the dvb frontend code changed recently. Regards, Manu -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html