[PATCH] clk: devres: make clock cleanup explicit on failure

From: Onur Özkan

Date: Fri Sep 04 2026 - 03:56:24 EST


Use devm_add_action() and explicitly disable and unprepare the clock if
registering the action fails to avoid smatch warning.

Link: https://lore.kernel.org/all/apmUPdYtdIM0dQbF@xxxxxxxxxx
Closes: https://lore.kernel.org/r/202608090025.dwxdfqFr-lkp@xxxxxxxxx
Signed-off-by: Onur Özkan <work@xxxxxxxxxxxxx>
---
drivers/clk/clk-devres.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/clk-devres.c b/drivers/clk/clk-devres.c
index 4cc3863bd7da..9ed9a7b7b23f 100644
--- a/drivers/clk/clk-devres.c
+++ b/drivers/clk/clk-devres.c
@@ -123,9 +123,11 @@ struct clk *devm_clk_get_optional_enabled_with_rate(struct device *dev,
if (ret)
goto out_put_clk;

- ret = devm_add_action_or_reset(dev, devm_clk_disable_unprepare, clk);
- if (ret)
+ ret = devm_add_action(dev, devm_clk_disable_unprepare, clk);
+ if (ret) {
+ clk_disable_unprepare(clk);
goto out_put_clk;
+ }

return clk;

--
2.51.2