]> git.itanic.dy.fi Git - linux-stable/commitdiff
clk: qcom: camcc-sc8280xp: Prevent error pointer dereference
authorDan Carpenter <dan.carpenter@linaro.org>
Tue, 12 Dec 2023 09:21:51 +0000 (12:21 +0300)
committerBjorn Andersson <andersson@kernel.org>
Sat, 16 Dec 2023 05:35:54 +0000 (23:35 -0600)
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>
drivers/clk/qcom/camcc-sc8280xp.c

index 877341e7327e2f1e0c2bfd714cd2b9b5a7162baf..3dcd79b01515170d5bb1945d02356fee6a036710 100644 (file)
@@ -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;