diff options
author | 2016-02-02 09:39:02 +0100 | |
---|---|---|
committer | 2016-02-06 03:38:11 -0500 | |
commit | 3647bc35bd427610a70eb83c58c5e834262badfa (patch) | |
tree | b10d00948ae085612868de8042ed08eea25f52dc /drivers/net/ethernet/synopsys | |
parent | ipv6: addrconf: Fix recursive spin lock call (diff) | |
download | linux-3647bc35bd427610a70eb83c58c5e834262badfa.tar.gz linux-3647bc35bd427610a70eb83c58c5e834262badfa.tar.bz2 linux-3647bc35bd427610a70eb83c58c5e834262badfa.zip |
dwc_eth_qos: Reset hardware before PHY start
The hardware reset is currently done after phy_start() is called,
leading to a race where we can lose the link status if the phy state
machine calls dwceqos_adjust_link() before we reset the MAC registers.
Acked-by: Lars Persson <larper@axis.com>
Signed-off-by: Rabin Vincent <rabinv@axis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/synopsys')
-rw-r--r-- | drivers/net/ethernet/synopsys/dwc_eth_qos.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/synopsys/dwc_eth_qos.c b/drivers/net/ethernet/synopsys/dwc_eth_qos.c index 70814b7386b3..fc8bbff2d7e3 100644 --- a/drivers/net/ethernet/synopsys/dwc_eth_qos.c +++ b/drivers/net/ethernet/synopsys/dwc_eth_qos.c @@ -1880,9 +1880,9 @@ static int dwceqos_open(struct net_device *ndev) } netdev_reset_queue(ndev); + dwceqos_init_hw(lp); napi_enable(&lp->napi); phy_start(lp->phy_dev); - dwceqos_init_hw(lp); netif_start_queue(ndev); tasklet_enable(&lp->tx_bdreclaim_tasklet); |