|
|
@@ -164,6 +164,9 @@ static void dvb_frontend_free(struct kref *ref)
|
|
|
|
|
|
static void dvb_frontend_put(struct dvb_frontend *fe)
|
|
|
{
|
|
|
+ /* call detach before dropping the reference count */
|
|
|
+ if (fe->ops.detach)
|
|
|
+ fe->ops.detach(fe);
|
|
|
/*
|
|
|
* Check if the frontend was registered, as otherwise
|
|
|
* kref was not initialized yet.
|
|
|
@@ -3035,7 +3038,6 @@ void dvb_frontend_detach(struct dvb_frontend *fe)
|
|
|
dvb_frontend_invoke_release(fe, fe->ops.release_sec);
|
|
|
dvb_frontend_invoke_release(fe, fe->ops.tuner_ops.release);
|
|
|
dvb_frontend_invoke_release(fe, fe->ops.analog_ops.release);
|
|
|
- dvb_frontend_invoke_release(fe, fe->ops.detach);
|
|
|
dvb_frontend_put(fe);
|
|
|
}
|
|
|
EXPORT_SYMBOL(dvb_frontend_detach);
|