[linux-dvb] af9005/mt2060 module unload failure

Luca Olivetti luca at ventoso.org
Thu Jun 14 23:50:10 CEST 2007

En/na Trent Piepho ha escrit:

> Exactly, the dvb_frontend struct contains the tuner.  In fact, the pointer
> returned by the tuner attach functions is just the dvb_frontend pointer you
> passed in.  The tuner attach functions don't return a new tuner object (there
> is no dvb_tuner object), they add the tuner functions into the frontend.  One
> could have a frontend with no tuner.
> In af9005_fe_set_frontend(), you do this:
>         ret = state->tuner->ops.tuner_ops.set_params(state->tuner, fep);
> What you should do is:
> 	ret = fe->ops.tuner_ops.set_params(state->tuner, fep);
> I don't think you need the state->tuner field really.  Just replace all the
> "state->tuner->ops..." with "fe->ops...".  And change (state->tuner != NULL)
> to (fe->ops.tuner_ops.release != NULL), or add a one bit flag
> state->tuner_is_attached and use that.

Ok, that could be an idea, but it wouldn't explain why my 
symbol_put_addr messes up the reference count, while the same exact 
thing done in dvb_frontend_detach wouldn't.


More information about the linux-dvb mailing list