]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init()
authorAnkit Agrawal <agrawal.ag.ankit@gmail.com>
Sat, 13 Jul 2024 09:57:13 +0000 (15:27 +0530)
committerDaniel Lezcano <daniel.lezcano@linaro.org>
Fri, 6 Sep 2024 12:49:21 +0000 (14:49 +0200)
Add the missing iounmap() when clock frequency fails to get read by the
of_property_read_u32() call, or if the call to msm_timer_init() fails.

Fixes: 6e3321631ac2 ("ARM: msm: Add DT support to msm_timer")
Signed-off-by: Ankit Agrawal <agrawal.ag.ankit@gmail.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Link: https://lore.kernel.org/r/20240713095713.GA430091@bnew-VirtualBox
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
drivers/clocksource/timer-qcom.c

index b4afe3a67583513c20a51d7f868e56e08ef16024..eac4c95c6127f2587f0e0858f26fef56c3577250 100644 (file)
@@ -233,6 +233,7 @@ static int __init msm_dt_timer_init(struct device_node *np)
        }
 
        if (of_property_read_u32(np, "clock-frequency", &freq)) {
+               iounmap(cpu0_base);
                pr_err("Unknown frequency\n");
                return -EINVAL;
        }
@@ -243,7 +244,11 @@ static int __init msm_dt_timer_init(struct device_node *np)
        freq /= 4;
        writel_relaxed(DGT_CLK_CTL_DIV_4, source_base + DGT_CLK_CTL);
 
-       return msm_timer_init(freq, 32, irq, !!percpu_offset);
+       ret = msm_timer_init(freq, 32, irq, !!percpu_offset);
+       if (ret)
+               iounmap(cpu0_base);
+
+       return ret;
 }
 TIMER_OF_DECLARE(kpss_timer, "qcom,kpss-timer", msm_dt_timer_init);
 TIMER_OF_DECLARE(scss_timer, "qcom,scss-timer", msm_dt_timer_init);