summaryrefslogtreecommitdiff
path: root/drivers/cpufreq/mediatek-cpufreq.c
diff options
context:
space:
mode:
authorWan Jiabing <wanjiabing@vivo.com>2022-05-10 12:05:31 +0300
committerViresh Kumar <viresh.kumar@linaro.org>2022-05-10 12:10:56 +0300
commit85f5b3c437c927526ab2c4af962dceec08ae58c6 (patch)
tree906d33216fe6f099cd6c0d58c63d25e492ddf41c /drivers/cpufreq/mediatek-cpufreq.c
parentc210063b40acab74bb7262d2bfae557171884ff2 (diff)
downloadlinux-85f5b3c437c927526ab2c4af962dceec08ae58c6.tar.xz
cpufreq: mediatek: Fix potential deadlock problem in mtk_cpufreq_set_target
Fix following coccichek error: ./drivers/cpufreq/mediatek-cpufreq.c:199:2-8: preceding lock on line ./drivers/cpufreq/mediatek-cpufreq.c:208:2-8: preceding lock on line mutex_lock is acquired but not released before return. Use 'goto out' to help releasing the mutex_lock. Fixes: c210063b40ac ("cpufreq: mediatek: Add opp notification support") Signed-off-by: Wan Jiabing <wanjiabing@vivo.com> Reviewed-by: Rex-BC Chen <rex-bc.chen@mediatek.com> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Diffstat (limited to 'drivers/cpufreq/mediatek-cpufreq.c')
-rw-r--r--drivers/cpufreq/mediatek-cpufreq.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/cpufreq/mediatek-cpufreq.c b/drivers/cpufreq/mediatek-cpufreq.c
index 75bf21ddf61f..4c6d53c99d79 100644
--- a/drivers/cpufreq/mediatek-cpufreq.c
+++ b/drivers/cpufreq/mediatek-cpufreq.c
@@ -196,7 +196,8 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
if (pre_vproc < 0) {
dev_err(cpu_dev, "invalid Vproc value: %d\n", pre_vproc);
- return pre_vproc;
+ ret = pre_vproc;
+ goto out;
}
freq_hz = freq_table[index].frequency * 1000;
@@ -205,7 +206,8 @@ static int mtk_cpufreq_set_target(struct cpufreq_policy *policy,
if (IS_ERR(opp)) {
dev_err(cpu_dev, "cpu%d: failed to find OPP for %ld\n",
policy->cpu, freq_hz);
- return PTR_ERR(opp);
+ ret = PTR_ERR(opp);
+ goto out;
}
vproc = dev_pm_opp_get_voltage(opp);
dev_pm_opp_put(opp);