[PATCH] phy: core: Fix refcount leak bug in of_phy_provider_lookup()
Liang He
windhl at 126.com
Fri Jul 15 05:20:00 PDT 2022
We should call of_node_put() when breaking out of for_each_child_of_node()
as it will automatically increase and decrease the refcount.
Fixes: 2a4c37016ca9 ("phy: core: Fix of_phy_provider_lookup to return PHY provider for sub node")
Signed-off-by: Liang He <windhl at 126.com>
---
drivers/phy/phy-core.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
index d93ddf1262c5..47f414c0857d 100644
--- a/drivers/phy/phy-core.c
+++ b/drivers/phy/phy-core.c
@@ -138,8 +138,10 @@ static struct phy_provider *of_phy_provider_lookup(struct device_node *node)
return phy_provider;
for_each_child_of_node(phy_provider->children, child)
- if (child == node)
+ if (child == node) {
+ of_node_put(child);
return phy_provider;
+ }
}
return ERR_PTR(-EPROBE_DEFER);
--
2.25.1
More information about the linux-phy
mailing list