mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-02 00:24:12 +08:00
media: venus: core: Fix error handling in probe
Post a successful pm_ops->core_get, an error in probe should exit by doing a pm_ops->core_put which seems to be missing. So fix it. Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org> Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
parent
bbe516e976
commit
98cd831088
@ -224,13 +224,15 @@ static int venus_probe(struct platform_device *pdev)
|
||||
|
||||
ret = dma_set_mask_and_coherent(dev, core->res->dma_mask);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_core_put;
|
||||
|
||||
if (!dev->dma_parms) {
|
||||
dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms),
|
||||
GFP_KERNEL);
|
||||
if (!dev->dma_parms)
|
||||
return -ENOMEM;
|
||||
if (!dev->dma_parms) {
|
||||
ret = -ENOMEM;
|
||||
goto err_core_put;
|
||||
}
|
||||
}
|
||||
dma_set_max_seg_size(dev, DMA_BIT_MASK(32));
|
||||
|
||||
@ -242,11 +244,11 @@ static int venus_probe(struct platform_device *pdev)
|
||||
IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
|
||||
"venus", core);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_core_put;
|
||||
|
||||
ret = hfi_create(core, &venus_core_ops);
|
||||
if (ret)
|
||||
return ret;
|
||||
goto err_core_put;
|
||||
|
||||
pm_runtime_enable(dev);
|
||||
|
||||
@ -305,6 +307,9 @@ err_runtime_disable:
|
||||
pm_runtime_set_suspended(dev);
|
||||
pm_runtime_disable(dev);
|
||||
hfi_destroy(core);
|
||||
err_core_put:
|
||||
if (core->pm_ops->core_put)
|
||||
core->pm_ops->core_put(dev);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user