[linux-dvb] af9005/mt2060 module unload failure
mkrufky at linuxtv.org
Thu Jun 14 22:41:28 CEST 2007
Luca Olivetti wrote:
> En/na Trent Piepho ha escrit:
>> On Thu, 14 Jun 2007, Luca Olivetti wrote:
>>> En/na Michael Krufky ha escrit:
>>>>> Why dont you just use dvb_frontend_detach?
>>>> I retract that comment...
>>>> The dvb-usb framework does this itself inside dvb-usb-dvb.c , inside
>>>> ... You should not have to do the symbol_put inside af9005-fe.c
>>>> If you remove that code, does it fix the issue?
>>> Well, I'm doing the attach myself to attach the tuner to the frontend
>>> the first time it is opened, so if I remove the code there will be at
>>> least one reference to the mt2060 (or qt1010, depending on the model) so
>>> it cannot be unloaded.
>> The tuner gets attached once when you call dvb_attach() from
>> af9005_fe_init. It will get detached once when dvb_frontend_detach() is
>> called. Everything balanced.
> but dvb_frontent_detach doesnt' know anynthing about the tuner (since
> it's in the frontend private data), so if I don't do the put_symbol
> myself in af9005_fe_release (as I do the dvb_attach myself in
> af9005_fe_init) there will be a dangling reference count, yes?
You are incorrect -- dvb_frontend_detach has access to the entire "struct
dvb_frontend *fe" , and dvb-core will call fe->ops.tuner_ops.release function
itself and dvb_frontend_detach will handle the module detachment.
More information about the linux-dvb