Skip to contentSkip to conversation

clocksource: qcom: Add missing iounmap() on errors in msm_dt_timer_init()

PATCH Applied Ankit Agrawal 4 participants 5 messages Jul 13, 2024 – Sep 6, 2024

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH v3 1/1 clocksource: qcom: Add missing iounmap() on errors in msm_dt_timer_init()

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")

---
Changes in v3:
- Update patch commit message
- Link to v2: https://lore.kernel.org/linux-arm-msm/20240712082747.GA182658@bnew-VirtualBox/

Changes in v2:
- Add iounmap() if msm_timer_init() fails
- Update patch commit message
- Link to v1: https://lore.kernel.org/linux-arm-msm/20240710110813.GA15351@bnew-VirtualBox/

---
 drivers/clocksource/timer-qcom.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/clocksource/timer-qcom.c +6 -1
index b4afe3a67..eac4c95c6 100644
@@ -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);
Signature · 1 line
2.25.1
#1 lore raw
Quoted 46 lines · Ankit Agrawal

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")

---
Changes in v3:
- Update patch commit message
- Link to v2: https://lore.kernel.org/linux-arm-msm/20240712082747.GA182658@bnew-VirtualBox/

Changes in v2:
- Add iounmap() if msm_timer_init() fails
- Update patch commit message
- Link to v1: https://lore.kernel.org/linux-arm-msm/20240710110813.GA15351@bnew-VirtualBox/

---
 drivers/clocksource/timer-qcom.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/clocksource/timer-qcom.c +6 -1
index b4afe3a67..eac4c95c6 100644
@@ -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);
Signature · 1 line
2.25.1

Hello maintainers,

Could you please suggest the next steps that should be taken to move this patch further. From what I understand, the merge-window for the next stable kernel release (v6.11) is open, and I would be very much grateful if I could get help on moving this patch further.

Also, please let me know if I need to make any changes to the patch in order to finalize it :)

Thanks!
Ankit

#2 lore raw
Quoted 50 lines · Ankit Agrawal
Quoted 46 lines · Ankit Agrawal

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")

---
Changes in v3:
- Update patch commit message
- Link to v2: https://lore.kernel.org/linux-arm-msm/20240712082747.GA182658@bnew-VirtualBox/

Changes in v2:
- Add iounmap() if msm_timer_init() fails
- Update patch commit message
- Link to v1: https://lore.kernel.org/linux-arm-msm/20240710110813.GA15351@bnew-VirtualBox/

---
 drivers/clocksource/timer-qcom.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/clocksource/timer-qcom.c +6 -1
index b4afe3a67..eac4c95c6 100644
@@ -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);
Signature · 1 line
2.25.1

Hello maintainers,

Quoted 7 lines

Could you please suggest the next steps that should be taken to move this patch further. From what I understand, the merge-window for the next stable kernel release (v6.11) is open, and I would be very much grateful if I could get help on moving this patch further.

Also, please let me know if I need to make any changes to the patch in order to finalize it :)

The merge window is named very confusingly.. it's when your patches are NOT merged, but rather the patches accumulated in the maintainer trees are sent to Linus Torvalds, where he merges each one of them and runs some tests to make sure nothing broke. Your patches will be picked up after 6.11-rc1 drops, and (unless they're fixes) will be scheduled for 6.12

Konrad

#3 lore raw
In reply to Ankit Agrawal
Quoted 7 lines · Ankit Agrawal

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")

---

Applied, thanks

Sorry for the delay. In the future, please send to To: instead of Cc: for the maintainers

Signature · 5 lines
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs

Follow Linaro:  <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
merge bot Applied
#4 lore raw

[tip: timers/core] clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init()

In reply to Ankit Agrawal
The following commit has been merged into the timers/core branch of tip:

The following commit has been merged into the timers/core branch of tip:

Commit-ID:     ca140a0dc0a18acd4653b56db211fec9b2339986
Gitweb:        https://git.kernel.org/tip/ca140a0dc0a18acd4653b56db211fec9b2339986
Author:        Ankit Agrawal <[email protected]>
AuthorDate:    Sat, 13 Jul 2024 15:27:13 +05:30
Committer:     Daniel Lezcano <[email protected]>
CommitterDate: Fri, 06 Sep 2024 14:49:21 +02:00

clocksource/drivers/qcom: Add missing iounmap() on errors in msm_dt_timer_init()

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.

---
 drivers/clocksource/timer-qcom.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
drivers/clocksource/timer-qcom.c +6 -1
index b4afe3a..eac4c95 100644
@@ -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);