dvb_frontend will call dvb_detach for:
- stb0899_detach in dvb_frontend_release and
- stb0899_release in __dvb_frontend_free

But we only do dvb_attach(stb0899_attach).
Increment the module refcount instead.

Signed-off-by: Wolfgang Rohdewald <wolfg...@rohdewald.de>
---
 drivers/media/usb/dvb-usb/pctv452e.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/drivers/media/usb/dvb-usb/pctv452e.c 
b/drivers/media/usb/dvb-usb/pctv452e.c
index 601ade7ca48d..3b7f8298b24d 100644
--- a/drivers/media/usb/dvb-usb/pctv452e.c
+++ b/drivers/media/usb/dvb-usb/pctv452e.c
@@ -913,6 +913,14 @@ static int pctv452e_frontend_attach(struct dvb_usb_adapter 
*a)
                                                &a->dev->i2c_adap);
        if (!a->fe_adap[0].fe)
                return -ENODEV;
+
+       /*
+        * dvb_frontend will call dvb_detach for both stb0899_detach
+        * and stb0899_release but we only do dvb_attach(stb0899_attach).
+        * Increment the module refcount instead.
+        */
+       symbol_get(stb0899_attach);
+
        if ((dvb_attach(lnbp22_attach, a->fe_adap[0].fe,
                                        &a->dev->i2c_adap)) == NULL)
                err("Cannot attach lnbp22\n");
-- 
2.11.0

Reply via email to