[media] tm6000-dvb: Fix module unload
authorJulian Scheel <julian@jusst.de>
Mon, 5 Nov 2012 14:51:05 +0000 (11:51 -0300)
committerMauro Carvalho Chehab <mchehab@redhat.com>
Fri, 21 Dec 2012 20:45:31 +0000 (18:45 -0200)
dvb_unregister_frontend has to be called before detach. Otherwise the
unregister call will segfault. This made tm6000-dvb module unload unusable.

Signed-off-by: Julian Scheel <julian@jusst.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
drivers/media/usb/tm6000/tm6000-dvb.c

index e1f3f66e1e63018f3db3074bfb276f765808dc96..9fc1e940a82b6684e3a16192b0f5ffbcc7b89b00 100644 (file)
@@ -360,8 +360,8 @@ dvb_dmx_err:
        dvb_dmx_release(&dvb->demux);
 frontend_err:
        if (dvb->frontend) {
-               dvb_frontend_detach(dvb->frontend);
                dvb_unregister_frontend(dvb->frontend);
+               dvb_frontend_detach(dvb->frontend);
        }
 adapter_err:
        dvb_unregister_adapter(&dvb->adapter);
@@ -384,8 +384,8 @@ static void unregister_dvb(struct tm6000_core *dev)
 
 /*     mutex_lock(&tm6000_driver.open_close_mutex); */
        if (dvb->frontend) {
-               dvb_frontend_detach(dvb->frontend);
                dvb_unregister_frontend(dvb->frontend);
+               dvb_frontend_detach(dvb->frontend);
        }
 
        dvb_dmxdev_release(&dvb->dmxdev);