Skip to content

Commit b07b952

Browse files
WillLestergregkh
authored andcommitted
media: budget-core: Improve exception handling in budget_register()
[ Upstream commit fc04564 ] budget_register() has no error handling after its failure. Add the missed undo functions for error handling to fix it. Signed-off-by: Chuhong Yuan <hslester96@gmail.com> Signed-off-by: Sean Young <sean@mess.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
1 parent 7d057ec commit b07b952

1 file changed

Lines changed: 8 additions & 3 deletions

File tree

drivers/media/pci/ttpci/budget-core.c

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -383,20 +383,25 @@ static int budget_register(struct budget *budget)
383383
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->hw_frontend);
384384

385385
if (ret < 0)
386-
return ret;
386+
goto err_release_dmx;
387387

388388
budget->mem_frontend.source = DMX_MEMORY_FE;
389389
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->mem_frontend);
390390
if (ret < 0)
391-
return ret;
391+
goto err_release_dmx;
392392

393393
ret = dvbdemux->dmx.connect_frontend(&dvbdemux->dmx, &budget->hw_frontend);
394394
if (ret < 0)
395-
return ret;
395+
goto err_release_dmx;
396396

397397
dvb_net_init(&budget->dvb_adapter, &budget->dvb_net, &dvbdemux->dmx);
398398

399399
return 0;
400+
401+
err_release_dmx:
402+
dvb_dmxdev_release(&budget->dmxdev);
403+
dvb_dmx_release(&budget->demux);
404+
return ret;
400405
}
401406

402407
static void budget_unregister(struct budget *budget)

0 commit comments

Comments
 (0)