diff options
author | Rabin Vincent <rabinv@axis.com> | 2016-02-02 03:39:02 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-02-06 03:38:11 -0500 |
commit | 3647bc35bd427610a70eb83c58c5e834262badfa (patch) | |
tree | b10d00948ae085612868de8042ed08eea25f52dc | |
parent | 16186a82de1fdd868255448274e64ae2616e2640 (diff) |
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>
-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) | |||
1880 | } | 1880 | } |
1881 | netdev_reset_queue(ndev); | 1881 | netdev_reset_queue(ndev); |
1882 | 1882 | ||
1883 | dwceqos_init_hw(lp); | ||
1883 | napi_enable(&lp->napi); | 1884 | napi_enable(&lp->napi); |
1884 | phy_start(lp->phy_dev); | 1885 | phy_start(lp->phy_dev); |
1885 | dwceqos_init_hw(lp); | ||
1886 | 1886 | ||
1887 | netif_start_queue(ndev); | 1887 | netif_start_queue(ndev); |
1888 | tasklet_enable(&lp->tx_bdreclaim_tasklet); | 1888 | tasklet_enable(&lp->tx_bdreclaim_tasklet); |