• Doug Berger's avatar
    net: bcmgenet: reapply manual settings to the PHY · 0686bd9d
    Doug Berger authored
    The phy_init_hw() function may reset the PHY to a configuration
    that does not match manual network settings stored in the phydev
    structure. If the phy state machine is polled rather than event
    driven this can create a timing hazard where the phy state machine
    might alter the settings stored in the phydev structure from the
    value read from the BMCR.
    
    This commit follows invocations of phy_init_hw() by the bcmgenet
    driver with invocations of the genphy_config_aneg() function to
    ensure that the BMCR is written to match the settings held in the
    phydev structure. This prevents the risk of manual settings being
    accidentally altered.
    
    Fixes: 1c1008c7 ("net: bcmgenet: add main driver file")
    Signed-off-by: default avatarDoug Berger <opendmb@gmail.com>
    Acked-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    0686bd9d
bcmgenet.c 97.9 KB