summaryrefslogtreecommitdiffstats
path: root/arch/arm/net
diff options
context:
space:
mode:
authorFlorian Fainelli <f.fainelli@gmail.com>2014-09-02 20:17:07 +0200
committerDavid S. Miller <davem@davemloft.net>2014-09-05 08:13:58 +0200
commit4a804c01635a43ed073893532c058fbaa1f5154e (patch)
tree6a76d65ac4a4227df062f376173b31f2cdff3abf /arch/arm/net
parentipv4: implement igmp_qrv sysctl to tune igmp robustness variable (diff)
downloadlinux-4a804c01635a43ed073893532c058fbaa1f5154e.tar.xz
linux-4a804c01635a43ed073893532c058fbaa1f5154e.zip
net: systemport: update UMAC_CMD only when link is detected
When we bring the interface down, phy_stop() will schedule the PHY state machine to call our link adjustment callback. By the time we do so, we may have clock gated off the SYSTEMPORT hardware block, and this will cause bus errors to happen in bcm_sysport_adj_link(): Make sure that we only touch the UMAC_CMD register when there is an actual link. This is safe to do for two reasons: - updating the Ethernet MAC registers only make sense when a physical link is present - the PHY library state machine first set phydev->link = 0 before invoking phydev->adjust_link in the PHY_HALTED case This is a similar fix to the GENET one: c677ba8b3c47650358572091ed8a6af50bfca877 ("net: bcmgenet: update UMAC_CMD only when link is detected"). Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver") Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/arm/net')
0 files changed, 0 insertions, 0 deletions