Commit 3647bc35 authored by Rabin Vincent's avatar Rabin Vincent Committed by David S. Miller

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: default avatarLars Persson <larper@axis.com>
Signed-off-by: default avatarRabin Vincent <rabinv@axis.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 16186a82
...@@ -1880,9 +1880,9 @@ static int dwceqos_open(struct net_device *ndev) ...@@ -1880,9 +1880,9 @@ static int dwceqos_open(struct net_device *ndev)
} }
netdev_reset_queue(ndev); netdev_reset_queue(ndev);
dwceqos_init_hw(lp);
napi_enable(&lp->napi); napi_enable(&lp->napi);
phy_start(lp->phy_dev); phy_start(lp->phy_dev);
dwceqos_init_hw(lp);
netif_start_queue(ndev); netif_start_queue(ndev);
tasklet_enable(&lp->tx_bdreclaim_tasklet); tasklet_enable(&lp->tx_bdreclaim_tasklet);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment