Make sure all the frames that are in flight have time to be processed
before the interface is completely brought down. Add a missing delay
for the Rx path.

Signed-off-by: Madalin Bucur <madalin.bu...@nxp.com>
---
 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c 
b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
index 97fc067ae269..77edf2e026e8 100644
--- a/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
+++ b/drivers/net/ethernet/freescale/dpaa/dpaa_eth.c
@@ -266,7 +266,7 @@ static int dpaa_stop(struct net_device *net_dev)
        /* Allow the Fman (Tx) port to process in-flight frames before we
         * try switching it off.
         */
-       usleep_range(5000, 10000);
+       msleep(200);
 
        err = mac_dev->stop(mac_dev);
        if (err < 0)
@@ -283,6 +283,8 @@ static int dpaa_stop(struct net_device *net_dev)
                phy_disconnect(net_dev->phydev);
        net_dev->phydev = NULL;
 
+       msleep(200);
+
        return err;
 }
 
-- 
2.1.0

Reply via email to