|
@@ -782,7 +782,12 @@ static int __devinit dvb_bt8xx_load_card(struct dvb_bt8xx_card *card, u32 type)
|
|
|
goto err_remove_mem_frontend;
|
|
|
}
|
|
|
|
|
|
- dvb_net_init(&card->dvb_adapter, &card->dvbnet, &card->demux.dmx);
|
|
|
+ result = dvb_net_init(&card->dvb_adapter, &card->dvbnet, &card->demux.dmx);
|
|
|
+ if (result < 0) {
|
|
|
+ printk(KERN_ERR,
|
|
|
+ "dvb_bt8xx: dvb_net_init failed (errno = %d)\n", result);
|
|
|
+ goto err_disconnect_frontend;
|
|
|
+ }
|
|
|
|
|
|
tasklet_init(&card->bt->tasklet, dvb_bt8xx_task, (unsigned long) card);
|
|
|
|
|
@@ -790,6 +795,8 @@ static int __devinit dvb_bt8xx_load_card(struct dvb_bt8xx_card *card, u32 type)
|
|
|
|
|
|
return 0;
|
|
|
|
|
|
+err_disconnect_frontend:
|
|
|
+ card->demux.dmx.disconnect_frontend(&card->demux.dmx);
|
|
|
err_remove_mem_frontend:
|
|
|
card->demux.dmx.remove_frontend(&card->demux.dmx, &card->fe_mem);
|
|
|
err_remove_hw_frontend:
|