drivers/phy/ti/phy-j721e-wiz.c | 2 ++ 1 file changed, 2 insertions(+)
The serdes device_node is obtained using of_get_child_by_name(),
which increments the reference count. However, it is never put,
leading to a reference leak.
Add the missing of_node_put() calls to ensure the reference count is
properly balanced.
Fixes: 7ae14cf581f2 ("phy: ti: j721e-wiz: Implement DisplayPort mode to the wiz driver")
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: Felix Gu <ustc.gu@gmail.com>
---
Changes in v2:
- Use of_node_put() suggested by Vladimir Oltean.
- Link to v1: https://lore.kernel.org/r/20260211-wiz-v1-1-fdd018d02f33@gmail.com
---
drivers/phy/ti/phy-j721e-wiz.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/phy/ti/phy-j721e-wiz.c b/drivers/phy/ti/phy-j721e-wiz.c
index 12a19bf2875c..10110cc2115b 100644
--- a/drivers/phy/ti/phy-j721e-wiz.c
+++ b/drivers/phy/ti/phy-j721e-wiz.c
@@ -1428,6 +1428,7 @@ static int wiz_get_lane_phy_types(struct device *dev, struct wiz *wiz)
dev_err(dev,
"%s: Reading \"reg\" from \"%s\" failed: %d\n",
__func__, subnode->name, ret);
+ of_node_put(serdes);
return ret;
}
of_property_read_u32(subnode, "cdns,num-lanes", &num_lanes);
@@ -1442,6 +1443,7 @@ static int wiz_get_lane_phy_types(struct device *dev, struct wiz *wiz)
}
}
+ of_node_put(serdes);
return 0;
}
---
base-commit: 193579fe01389bc21aff0051d13f24e8ea95b47d
change-id: 20260204-wiz-9a67604a034f
Best regards,
--
Felix Gu <ustc.gu@gmail.com>
On Thu, 12 Feb 2026 18:39:19 +0800, Felix Gu wrote:
> The serdes device_node is obtained using of_get_child_by_name(),
> which increments the reference count. However, it is never put,
> leading to a reference leak.
>
> Add the missing of_node_put() calls to ensure the reference count is
> properly balanced.
>
> [...]
Applied, thanks!
[1/1] phy: ti: j721e-wiz: Fix device node reference leak in wiz_get_lane_phy_types()
commit: 584b457f4166293bdfa50f930228e9fb91a38392
Best regards,
--
~Vinod
On Thu, Feb 12, 2026 at 06:39:19PM +0800, Felix Gu wrote:
> The serdes device_node is obtained using of_get_child_by_name(),
> which increments the reference count. However, it is never put,
> leading to a reference leak.
>
> Add the missing of_node_put() calls to ensure the reference count is
> properly balanced.
>
> Fixes: 7ae14cf581f2 ("phy: ti: j721e-wiz: Implement DisplayPort mode to the wiz driver")
> Suggested-by: Vladimir Oltean <olteanv@gmail.com>
> Signed-off-by: Felix Gu <ustc.gu@gmail.com>
> ---
> Changes in v2:
> - Use of_node_put() suggested by Vladimir Oltean.
> - Link to v1: https://lore.kernel.org/r/20260211-wiz-v1-1-fdd018d02f33@gmail.com
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
… > --- > Changes in v2: > - Use of_node_put() suggested by Vladimir Oltean. > - Link to v1: https://lore.kernel.org/r/20260211-wiz-v1-1-fdd018d02f33@gmail.com > --- > drivers/phy/ti/phy-j721e-wiz.c | 2 ++ … * Would you like to complete the exception handling by using another goto chain? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst?h=v6.19#n526 * How do you think about to increase the application of scope-based resource management by additional update steps? https://elixir.bootlin.com/linux/v6.19-rc5/source/include/linux/cleanup.h#L157-L161 Regards, Markus
On Fri, Feb 13, 2026 at 09:09:55AM +0100, Markus Elfring wrote: > … > > --- > > Changes in v2: > > - Use of_node_put() suggested by Vladimir Oltean. > > - Link to v1: https://lore.kernel.org/r/20260211-wiz-v1-1-fdd018d02f33@gmail.com > > --- > > drivers/phy/ti/phy-j721e-wiz.c | 2 ++ > … > > * Would you like to complete the exception handling by using another goto chain? > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/coding-style.rst?h=v6.19#n526 While gotos have their place, here it seems simpler not to use them. Felix would have needed to move the "int ret" variable from the for_each_child_of_node_scoped() scope to the function scope, and initialize it with 0. All that is unnecessary complexity here. > * How do you think about to increase the application of scope-based resource management > by additional update steps? > https://elixir.bootlin.com/linux/v6.19-rc5/source/include/linux/cleanup.h#L157-L161 The cleanup.h API does not exist in all kernels where this bug fix can be backported.
© 2016 - 2026 Red Hat, Inc.