Skip to content

Commit 98cd831

Browse files
Rajendra Nayakmchehab
authored andcommitted
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 <[email protected]> Reviewed-by: Bjorn Andersson <[email protected]> Signed-off-by: Stanimir Varbanov <[email protected]> Signed-off-by: Mauro Carvalho Chehab <[email protected]>
1 parent bbe516e commit 98cd831

File tree

1 file changed

+10
-5
lines changed
  • drivers/media/platform/qcom/venus

1 file changed

+10
-5
lines changed

drivers/media/platform/qcom/venus/core.c

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -224,13 +224,15 @@ static int venus_probe(struct platform_device *pdev)
224224

225225
ret = dma_set_mask_and_coherent(dev, core->res->dma_mask);
226226
if (ret)
227-
return ret;
227+
goto err_core_put;
228228

229229
if (!dev->dma_parms) {
230230
dev->dma_parms = devm_kzalloc(dev, sizeof(*dev->dma_parms),
231231
GFP_KERNEL);
232-
if (!dev->dma_parms)
233-
return -ENOMEM;
232+
if (!dev->dma_parms) {
233+
ret = -ENOMEM;
234+
goto err_core_put;
235+
}
234236
}
235237
dma_set_max_seg_size(dev, DMA_BIT_MASK(32));
236238

@@ -242,11 +244,11 @@ static int venus_probe(struct platform_device *pdev)
242244
IRQF_TRIGGER_HIGH | IRQF_ONESHOT,
243245
"venus", core);
244246
if (ret)
245-
return ret;
247+
goto err_core_put;
246248

247249
ret = hfi_create(core, &venus_core_ops);
248250
if (ret)
249-
return ret;
251+
goto err_core_put;
250252

251253
pm_runtime_enable(dev);
252254

@@ -305,6 +307,9 @@ static int venus_probe(struct platform_device *pdev)
305307
pm_runtime_set_suspended(dev);
306308
pm_runtime_disable(dev);
307309
hfi_destroy(core);
310+
err_core_put:
311+
if (core->pm_ops->core_put)
312+
core->pm_ops->core_put(dev);
308313
return ret;
309314
}
310315

0 commit comments

Comments
 (0)