summaryrefslogtreecommitdiff
path: root/drivers/clk
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@linaro.org>2023-12-12 12:21:51 +0300
committerBjorn Andersson <andersson@kernel.org>2023-12-15 23:35:54 -0600
commitdf14d214105e29d0e734aa36445888bd2b0dde78 (patch)
tree2bdb1d29bd691f646aed715b4719838d299bd17a /drivers/clk
parentf6bda45310ff165fdd69b8c3eb6679f0552f8a5f (diff)
clk: qcom: camcc-sc8280xp: Prevent error pointer dereference
If "regmap" is an error pointer then calling regmap_update_bits() will crash. We only need to call regmap_update_bits() if we had written to it earlier. Fixes: ff93872a9c61 ("clk: qcom: camcc-sc8280xp: Add sc8280xp CAMCC") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Reviewed-by: Abel Vesa <abel.vesa@linaro.org> Link: https://lore.kernel.org/r/210d48ce-6ebc-4a6b-b30f-866d10d41a16@moroto.mountain Signed-off-by: Bjorn Andersson <andersson@kernel.org>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/qcom/camcc-sc8280xp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/clk/qcom/camcc-sc8280xp.c b/drivers/clk/qcom/camcc-sc8280xp.c
index 877341e7327e..3dcd79b01515 100644
--- a/drivers/clk/qcom/camcc-sc8280xp.c
+++ b/drivers/clk/qcom/camcc-sc8280xp.c
@@ -3017,14 +3017,15 @@ static int camcc_sc8280xp_probe(struct platform_device *pdev)
ret = qcom_cc_really_probe(pdev, &camcc_sc8280xp_desc, regmap);
if (ret)
- goto err_put_rpm;
+ goto err_disable;
pm_runtime_put(&pdev->dev);
return 0;
-err_put_rpm:
+err_disable:
regmap_update_bits(regmap, 0xc1e4, BIT(0), 0);
+err_put_rpm:
pm_runtime_put_sync(&pdev->dev);
return ret;