mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01: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: 3b4c33ac87 ("clocksource/drivers: Add EcoNet Timer HPT driver")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Daniel Lezcano <daniel.lezcano@kernel.org>
Tested-by: Caleb James DeLisle <cjd@cjdns.fr>
Link: https://patch.msgid.link/20260915054552.1729612-1-vulab@iscas.ac.cn
This commit is contained in:
parent
9cc2e18b32
commit
36790ef578
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user