media: budget-core: Improve exception handling in budget_register()
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>
This commit is contained in:
Родитель
6499a0db9b
Коммит
fc0456458d
|
@ -369,20 +369,25 @@ static int budget_register(struct budget *budget)
|
|||
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->hw_frontend);
|
||||
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto err_release_dmx;
|
||||
|
||||
budget->mem_frontend.source = DMX_MEMORY_FE;
|
||||
ret = dvbdemux->dmx.add_frontend(&dvbdemux->dmx, &budget->mem_frontend);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto err_release_dmx;
|
||||
|
||||
ret = dvbdemux->dmx.connect_frontend(&dvbdemux->dmx, &budget->hw_frontend);
|
||||
if (ret < 0)
|
||||
return ret;
|
||||
goto err_release_dmx;
|
||||
|
||||
dvb_net_init(&budget->dvb_adapter, &budget->dvb_net, &dvbdemux->dmx);
|
||||
|
||||
return 0;
|
||||
|
||||
err_release_dmx:
|
||||
dvb_dmxdev_release(&budget->dmxdev);
|
||||
dvb_dmx_release(&budget->demux);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static void budget_unregister(struct budget *budget)
|
||||
|
|
Загрузка…
Ссылка в новой задаче