Subject: Re: [PATCH 05/15] ethernet: cavium: octeon: add missing of_node_put after calling of_parse_phandle

From: David Daney <[email-masked]>
Date: Wed, 27 Jul 2016 13:56:16 -0700

On 07/26/2016 07:20 PM, Peter Chen wrote:
> of_node_put needs to be called when the device node which is got
> from of_parse_phandle has finished using.
>
> Signed-off-by: Peter Chen <[email-masked]>

NAK.

> ---
>   drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 1 +
>   1 file changed, 1 insertion(+)
>
> diff --git a/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c b/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
> index e8bc15b..5eb9d8c 100644
> --- a/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
> +++ b/drivers/net/ethernet/cavium/octeon/octeon_mgmt.c
> @@ -960,6 +960,7 @@ static int octeon_mgmt_init_phy(struct net_device *netdev)
>   	phydev = of_phy_connect(netdev, p->phy_np,
>   				octeon_mgmt_adjust_link, 0,
>   				PHY_INTERFACE_MODE_MII);
> +	of_node_put(p->phy_np);

I don't think you can do this here.  octeon_mgmt_init_phy() may be 
called multiple times in the life of the driver, so p->phy_np must 
remain valid.

It may be appropriate to do the  of_node_put() in the 
octeon_mgmt_remove() function.

>   	if (!phydev)
>   		return -ENODEV;