summaryrefslogtreecommitdiff
path: root/drivers/media/video/video-buf-dvb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/media/video/video-buf-dvb.c')
-rw-r--r--drivers/media/video/video-buf-dvb.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/video/video-buf-dvb.c b/drivers/media/video/video-buf-dvb.c
index 7ee8a53cd336..376d354b27f6 100644
--- a/drivers/media/video/video-buf-dvb.c
+++ b/drivers/media/video/video-buf-dvb.c
@@ -223,6 +223,9 @@ fail_dmxdev:
fail_dmx:
dvb_unregister_frontend(dvb->frontend);
fail_frontend:
+ dvb_detach(dvb->frontend->ops.release_sec, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.tuner_ops.release, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release, dvb->frontend);
dvb_unregister_adapter(&dvb->adapter);
fail_adapter:
return result;
@@ -236,6 +239,9 @@ void videobuf_dvb_unregister(struct videobuf_dvb *dvb)
dvb_dmxdev_release(&dvb->dmxdev);
dvb_dmx_release(&dvb->demux);
dvb_unregister_frontend(dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release_sec, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.tuner_ops.release, dvb->frontend);
+ dvb_detach(dvb->frontend->ops.release, dvb->frontend);
dvb_unregister_adapter(&dvb->adapter);
}