[PATCH] clocksource/drivers/clps711x: fix refcount leak

From: Alexander A. Klimov

Date: Tue May 26 2026 - 14:48:10 EST


Every value returned from of_clk_get() is supposed to be cleaned up
via clk_put() once not needed anymore.

Fixes: f0b7fabec327 ("clocksource: clps711x: Add CLPS711X clocksource driver")
Signed-off-by: Alexander A. Klimov <grandmaster@xxxxxxxxxxxx>
---
drivers/clocksource/clps711x-timer.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/clocksource/clps711x-timer.c b/drivers/clocksource/clps711x-timer.c
index bb0a44adaf28..d9298a5f6005 100644
--- a/drivers/clocksource/clps711x-timer.c
+++ b/drivers/clocksource/clps711x-timer.c
@@ -76,7 +76,7 @@ static int __init _clps711x_clkevt_init(struct clk *clock, void __iomem *base,
static int __init clps711x_timer_init(struct device_node *np)
{
unsigned int irq = irq_of_parse_and_map(np, 0);
- struct clk *clock = of_clk_get(np, 0);
+ struct clk *clock;
void __iomem *base = of_iomap(np, 0);
int ret = 0;

@@ -86,6 +86,8 @@ static int __init clps711x_timer_init(struct device_node *np)
ret = -EINVAL;
goto unmap_io;
}
+
+ clock = of_clk_get(np, 0);
if (IS_ERR(clock)) {
ret = PTR_ERR(clock);
goto unmap_io;
@@ -103,6 +105,7 @@ static int __init clps711x_timer_init(struct device_node *np)
break;
}

+ clk_put(clock);
unmap_io:
iounmap(base);
return ret;
--
2.54.0