|
@@ -203,7 +203,9 @@ int fdtv_dvb_register(struct firedtv *fdtv, const char *name)
|
|
|
if (err)
|
|
|
goto fail_rem_frontend;
|
|
|
|
|
|
- dvb_net_init(&fdtv->adapter, &fdtv->dvbnet, &fdtv->demux.dmx);
|
|
|
+ err = dvb_net_init(&fdtv->adapter, &fdtv->dvbnet, &fdtv->demux.dmx);
|
|
|
+ if (err)
|
|
|
+ goto fail_disconnect_frontend;
|
|
|
|
|
|
fdtv_frontend_init(fdtv, name);
|
|
|
err = dvb_register_frontend(&fdtv->adapter, &fdtv->fe);
|
|
@@ -218,6 +220,7 @@ int fdtv_dvb_register(struct firedtv *fdtv, const char *name)
|
|
|
|
|
|
fail_net_release:
|
|
|
dvb_net_release(&fdtv->dvbnet);
|
|
|
+fail_disconnect_frontend:
|
|
|
fdtv->demux.dmx.close(&fdtv->demux.dmx);
|
|
|
fail_rem_frontend:
|
|
|
fdtv->demux.dmx.remove_frontend(&fdtv->demux.dmx, &fdtv->frontend);
|