summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/synopsys
diff options
context:
space:
mode:
authorRabin Vincent <rabinv@axis.com>2016-02-02 11:39:02 +0300
committerDavid S. Miller <davem@davemloft.net>2016-02-06 11:38:11 +0300
commit3647bc35bd427610a70eb83c58c5e834262badfa (patch)
treeb10d00948ae085612868de8042ed08eea25f52dc /drivers/net/ethernet/synopsys
parent16186a82de1fdd868255448274e64ae2616e2640 (diff)
downloadlinux-3647bc35bd427610a70eb83c58c5e834262badfa.tar.xz
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.c2
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);