Commit 98cd8310 authored by Rajendra Nayak's avatar Rajendra Nayak Committed by Mauro Carvalho Chehab
Browse files

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: default avatarRajendra Nayak <rnayak@codeaurora.org>
Reviewed-by: default avatarBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: default avatarStanimir Varbanov <stanimir.varbanov@linaro.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent bbe516e9
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -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;
}