From: Fei Shao Date: Mon, 19 Jun 2023 03:22:53 +0000 (+0800) Subject: clk: Fix memory leak in devm_clk_notifier_register() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=7fb933e56f77a57ef7cfc59fc34cbbf1b1fa31ff;p=linux.git clk: Fix memory leak in devm_clk_notifier_register() devm_clk_notifier_register() allocates a devres resource for clk notifier but didn't register that to the device, so the notifier didn't get unregistered on device detach and the allocated resource was leaked. Fix the issue by registering the resource through devres_add(). This issue was found with kmemleak on a Chromebook. Fixes: 6d30d50d037d ("clk: add devm variant of clk_notifier_register") Signed-off-by: Fei Shao Link: https://lore.kernel.org/r/20230619112253.v2.1.I13f060c10549ef181603e921291bdea95f83033c@changeid Reviewed-by: Dan Carpenter Signed-off-by: Stephen Boyd --- diff --git a/drivers/clk/clk.c b/drivers/clk/clk.c index 27c30a533759a..ce9dbef314d5c 100644 --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -4695,6 +4695,7 @@ int devm_clk_notifier_register(struct device *dev, struct clk *clk, if (!ret) { devres->clk = clk; devres->nb = nb; + devres_add(dev, devres); } else { devres_free(devres); }