From 5584c641be9e4ff812443511363a72edaa5ceeaa Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Sat, 31 Dec 2011 08:08:45 -0300 Subject: [media] dm1105: handle errors from dvb_net_init Clean up and error out if dvb_net_init fails (for example due to ENOMEM). This involves moving the dvb_net_init call to before frontend_init to make cleaning up a little easier. From an audit of dvb_net_init callers, now that dvb_net_init lets callers know about errors. Signed-off-by: Jonathan Nieder Signed-off-by: Mauro Carvalho Chehab --- drivers/media/dvb/dm1105/dm1105.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'drivers/media/dvb/dm1105/dm1105.c') diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c index 55e6533f15e9..70e040b999e7 100644 --- a/drivers/media/dvb/dm1105/dm1105.c +++ b/drivers/media/dvb/dm1105/dm1105.c @@ -1115,11 +1115,14 @@ static int __devinit dm1105_probe(struct pci_dev *pdev, if (ret < 0) goto err_remove_mem_frontend; + ret = dvb_net_init(dvb_adapter, &dev->dvbnet, dmx); + if (ret < 0) + goto err_disconnect_frontend; + ret = frontend_init(dev); if (ret < 0) goto err_disconnect_frontend; - dvb_net_init(dvb_adapter, &dev->dvbnet, dmx); dm1105_ir_init(dev); INIT_WORK(&dev->work, dm1105_dmx_buffer); -- cgit v1.2.2 From e99663417f626c9bfdc8117b35670a0292b820e6 Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Fri, 6 Jan 2012 14:40:26 -0300 Subject: [media] dm1105: release dvbnet on frontend attachment failure The patch "dm1105: handle errors from dvb_net_init" moved the initialization of dvbnet to before frontend attachment but forgot to adjust the error handling when frontend attachment fails. Signed-off-by: Jonathan Nieder Signed-off-by: Mauro Carvalho Chehab --- drivers/media/dvb/dm1105/dm1105.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'drivers/media/dvb/dm1105/dm1105.c') diff --git a/drivers/media/dvb/dm1105/dm1105.c b/drivers/media/dvb/dm1105/dm1105.c index 70e040b999e7..a609b3a9b146 100644 --- a/drivers/media/dvb/dm1105/dm1105.c +++ b/drivers/media/dvb/dm1105/dm1105.c @@ -1121,7 +1121,7 @@ static int __devinit dm1105_probe(struct pci_dev *pdev, ret = frontend_init(dev); if (ret < 0) - goto err_disconnect_frontend; + goto err_dvb_net; dm1105_ir_init(dev); -- cgit v1.2.2