• Uwe Kleine-König's avatar
    net: gianfar: fix reference counting for phy_node · 6f2c9bd8
    Uwe Kleine-König authored
    The line before the changed if condition is:
    
    	priv->phy_node = of_parse_phandle(np, "phy-handle", 0);
    
    . If this call succeeds priv->phy_node must not be overwritten in the if
    block; otherwise the reference to the node returned by of_parse_phandle
    is lost. So add a check that the if block isn't executed in this case.
    
    Furthermore in the fixed phy case no reference is aquired for phy_node
    resulting in an of_node_put without holding a reference. To fix that,
    get a reference on the MAC dt node.
    
    Fixes: be403645 ("gianfar: use the new fixed PHY helpers")
    Signed-off-by: default avatarUwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    6f2c9bd8
gianfar.c 90.2 KB