aboutsummaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/synopsys
diff options
context:
space:
mode:
authorGravatar Rabin Vincent <rabinv@axis.com> 2016-02-02 09:39:02 +0100
committerGravatar David S. Miller <davem@davemloft.net> 2016-02-06 03:38:11 -0500
commit3647bc35bd427610a70eb83c58c5e834262badfa (patch)
treeb10d00948ae085612868de8042ed08eea25f52dc /drivers/net/ethernet/synopsys
parentipv6: addrconf: Fix recursive spin lock call (diff)
downloadlinux-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.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);