PM / devfreq: mediatek: unlock on error in mtk_ccifreq_target()
authorDan Carpenter <dan.carpenter@linaro.org>
Thu, 12 Oct 2023 09:41:12 +0000 (12:41 +0300)
committerChanwoo Choi <cw00.choi@samsung.com>
Tue, 17 Oct 2023 08:54:01 +0000 (17:54 +0900)
Call mutex_unlock(&drv->reg_lock) before returning the error code.

Link: https://lore.kernel.org/all/1bada9b2-d276-4123-bfdf-03d165569543@moroto.mountain/
Fixes: d2805601988f ("PM / devfreq: mediatek: protect oop in critical session")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
drivers/devfreq/mtk-cci-devfreq.c

index b0ed25e33f2bb2479774593e7a72fdb77cd9067b..11bc3d03494cb7366019b75556c6472634bb8e4c 100644 (file)
@@ -146,7 +146,8 @@ static int mtk_ccifreq_target(struct device *dev, unsigned long *freq,
        opp = devfreq_recommended_opp(dev, &opp_rate, 1);
        if (IS_ERR(opp)) {
                dev_err(dev, "failed to find opp for freq: %ld\n", opp_rate);
-               return PTR_ERR(opp);
+               ret = PTR_ERR(opp);
+               goto out_unlock;
        }
 
        voltage = dev_pm_opp_get_voltage(opp);