Message ID | 1469586048-15697-6-git-send-email-peter.chen@nxp.com |
---|---|
State | Changes Requested, archived |
Delegated to: | David Miller |
Headers | show |
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 <peter.chen@nxp.com> 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; >
> >> --- >> 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. Thanks, I will change it. Peter
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); if (!phydev) return -ENODEV;
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 <peter.chen@nxp.com> --- drivers/net/ethernet/cavium/octeon/octeon_mgmt.c | 1 + 1 file changed, 1 insertion(+)