static int flexcop_dvb_init(struct flexcop_device *fc)
{
int ret;
- if ((ret = dvb_register_adapter(&fc->dvb_adapter,"FlexCop Digital TV device",fc->owner,fc->dev)) < 0) {
+ if ((ret = dvb_register_adapter(&fc->dvb_adapter,"FlexCop Digital TV device",fc->owner)) < 0) {
err("error registering DVB adapter");
return ret;
}
dvb_net_init(&fc->dvb_adapter, &fc->dvbnet, &fc->demux.dmx);
fc->init_state |= FC_STATE_DVB_INIT;
- return 0;
+ goto success;
err_connect_frontend:
fc->demux.dmx.remove_frontend(&fc->demux.dmx,&fc->mem_frontend);
err_dmx:
dvb_unregister_adapter(&fc->dvb_adapter);
return ret;
+
+success:
+ return 0;
}
static void flexcop_dvb_exit(struct flexcop_device *fc)
flexcop_device_name(fc,"initialization of","complete");
- return 0;
-
+ ret = 0;
+ goto success;
error:
flexcop_device_exit(fc);
+success:
return ret;
}
EXPORT_SYMBOL(flexcop_device_initialize);