| From b39b47e87deea34994c36b792a540474099df081 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sat, 13 Jul 2024 15:27:13 +0530 |
| Subject: clocksource/drivers/qcom: Add missing iounmap() on errors in |
| msm_dt_timer_init() |
| |
| From: Ankit Agrawal <agrawal.ag.ankit@gmail.com> |
| |
| [ Upstream commit ca140a0dc0a18acd4653b56db211fec9b2339986 ] |
| |
| 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> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/clocksource/timer-qcom.c | 7 ++++++- |
| 1 file changed, 6 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/clocksource/timer-qcom.c b/drivers/clocksource/timer-qcom.c |
| index 89816f89ff3f4..83385bc431acc 100644 |
| --- a/drivers/clocksource/timer-qcom.c |
| +++ b/drivers/clocksource/timer-qcom.c |
| @@ -242,6 +242,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; |
| } |
| @@ -252,7 +253,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); |
| -- |
| 2.43.0 |
| |