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

Andrew Lunn <[email protected]>
Newsgroups org.kernel.vger.netdev
Message-ID <[email protected]>
On Sat, Aug 15, 2026 at 12:34:53AM +0530, manushprajwal wrote:
> From: Manush Prajwal <[email protected]>
> 
> 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 <[email protected]>
> ---
> 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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.