• Grygorii Strashko's avatar
    net: phy: relax error checking when creating sysfs link netdev->phydev · 4414b3ed
    Grygorii Strashko authored
    Some ethernet drivers (like TI CPSW) may connect and manage >1 Net PHYs per
    one netdevice, as result such drivers will produce warning during system
    boot and fail to connect second phy to netdevice when PHYLIB framework
    will try to create sysfs link netdev->phydev for second PHY
    in phy_attach_direct(), because sysfs link with the same name has been
    created already for the first PHY. As result, second CPSW external
    port will became unusable.
    
    Fix it by relaxing error checking when PHYLIB framework is creating sysfs
    link netdev->phydev in phy_attach_direct(), suppressing warning by using
    sysfs_create_link_nowarn() and adding error message instead.
    After this change links (phy->netdev and netdev->phy) creation failure is not
    fatal any more and system can continue working, which fixes TI CPSW issue.
    
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Fixes: a3995460 ("net: phy: Relax error checking on sysfs_create_link()")
    Signed-off-by: default avatarGrygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    4414b3ed
phy_device.c 49.3 KB