• Yonglong Liu's avatar
    net: phy: Fix "link partner" information disappear issue · 3de5ae54
    Yonglong Liu authored
    Some drivers just call phy_ethtool_ksettings_set() to set the
    links, for those phy drivers that use genphy_read_status(), if
    autoneg is on, and the link is up, than execute "ethtool -s
    ethx autoneg on" will cause "link partner" information disappear.
    
    The call trace is phy_ethtool_ksettings_set()->phy_start_aneg()
    ->linkmode_zero(phydev->lp_advertising)->genphy_read_status(),
    the link didn't change, so genphy_read_status() just return, and
    phydev->lp_advertising is zero now.
    
    This patch moves the clear operation of lp_advertising from
    phy_start_aneg() to genphy_read_lpa()/genphy_c45_read_lpa(), and
    if autoneg on and autoneg not complete, just clear what the
    generic functions care about.
    
    Fixes: 88d6272a ("net: phy: avoid unneeded MDIO reads in genphy_read_status")
    Signed-off-by: default avatarYonglong Liu <liuyonglong@huawei.com>
    Reviewed-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    3de5ae54
phy.c 31 KB