Thread (2 messages) flat view 2 messages, 2 authors, 23d ago

Re: [PATCH v2] net: ethernet: ti: netcp_core: fix device_node refcount leak in netcp_probe()

From: Andrew Lunn <andrew@lunn.ch>
Date: 2026-08-14 20:06:39

On Sat, Aug 15, 2026 at 12:34:53AM +0530, manushprajwal wrote:
quoted hunk ↗ jump to hunk
From: Manush Prajwal <redacted>

When netcp_create_interface() failed for a given child node,
netcp_probe() jumped to probe_quit_interface, which released the
"interfaces" parent node but never the "child" node that the
for_each_available_child_of_node() loop was iterating on.

Rework the loop around for_each_available_child_of_node_scoped()
instead of adding a manual of_node_put(). child is only read inside
the loop body and is never used after it, so the scoped macro's
automatic cleanup on the goto is sufficient on its own.

Signed-off-by: Manush Prajwal <redacted>
---
v2: Rework using for_each_available_child_of_node_scoped() instead of
    a manual of_node_put(), per Andrew Lunn's review.

 drivers/net/ethernet/ti/netcp_core.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c
index eb8fc2ed05..a888aa35fa 100644
--- a/drivers/net/ethernet/ti/netcp_core.c
+++ b/drivers/net/ethernet/ti/netcp_core.c
@@ -2204,7 +2204,7 @@ static int netcp_probe(struct platform_device *pdev)
 {
 	struct device_node *node = pdev->dev.of_node;
 	struct netcp_intf *netcp_intf, *netcp_tmp;
-	struct device_node *child, *interfaces;
+	struct device_node *interfaces;
 	struct netcp_device *netcp_device;
Reverse Christmas Tree

Please also read:

https://www.kernel.org/doc/html/latest/process/maintainer-netdev.html

    Andrew

---
pw-bot: cr
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help