[clocksource: timers/drivers/next] clocksource/drivers/timer-econet-en751221: Fix clock reference leak

From: clocksource-bot for Wentao Liang

Date: Wed Oct 14 2026 - 16:22:49 EST


The following commit has been merged into the timers/drivers/next branch of clocksource:

Commit-ID: 36790ef57803400339d8ea4081d85483264dbd6c
Gitweb: https://git.kernel.org/pub/scm/linux/kernel/git/daniel.lezcano/linux.git//36790ef57803400339d8ea4081d85483264dbd6c
Author: Wentao Liang <vulab@xxxxxxxxxxx>
AuthorDate: Tue, 15 Sep 2026 05:45:52
Committer: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
CommitterDate: Wed, 07 Oct 2026 15:46:14 +02:00

clocksource/drivers/timer-econet-en751221: Fix clock reference leak

timer_init() obtains the timer clock with of_clk_get() and only reads
its frequency with clk_get_rate(); the clock is never prepared nor
enabled. All four return paths after the acquisition (of_iomap()
failure, clocksource_mmio_init() failure, cevt_init() failure and
success) return without clk_put(), leaking the consumer reference.

Drop the reference with clk_put() right after the frequency has been
read. The clock enable state is untouched.

Fixes: 3b4c33ac87d0 ("clocksource/drivers: Add EcoNet Timer HPT driver")
Signed-off-by: Wentao Liang <vulab@xxxxxxxxxxx>
Signed-off-by: Daniel Lezcano <daniel.lezcano@xxxxxxxxxx>
Tested-by: Caleb James DeLisle <cjd@xxxxxxxx>
Link: https://patch.msgid.link/20260915054552.1729612-1-vulab@xxxxxxxxxxx
---
drivers/clocksource/timer-econet-en751221.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/clocksource/timer-econet-en751221.c b/drivers/clocksource/timer-econet-en751221.c
index 4008076..1859335 100644
--- a/drivers/clocksource/timer-econet-en751221.c
+++ b/drivers/clocksource/timer-econet-en751221.c
@@ -181,6 +181,7 @@ static int __init timer_init(struct device_node *np)
}

econet_timer.freq_hz = clk_get_rate(clk);
+ clk_put(clk);

for (int i = 0; i < num_blocks; i++) {
econet_timer.membase[i] = of_iomap(np, i);