diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c index 419263b400a..2050883ab93 100644 --- a/drivers/net/e1000.c +++ b/drivers/net/e1000.c @@ -1168,14 +1168,6 @@ static void e1000_disable(FAR struct e1000_driver_s *priv) { int i = 0; - /* Reset Tx tail */ - - e1000_txclean(priv); - - /* Reset Rx tail */ - - e1000_rxclean(priv); - /* Disable interrupts */ e1000_putreg_mem(priv, E1000_IMC, priv->irqs); @@ -1189,6 +1181,14 @@ static void e1000_disable(FAR struct e1000_driver_s *priv) e1000_putreg_mem(priv, E1000_RCTL, 0); + /* Reset Tx tail */ + + e1000_txclean(priv); + + /* Reset Rx tail */ + + e1000_rxclean(priv); + /* Free RX packets */ for (i = 0; i < E1000_RX_DESC; i += 1) diff --git a/drivers/net/igc.c b/drivers/net/igc.c index 83979ed2ab4..755c8172709 100644 --- a/drivers/net/igc.c +++ b/drivers/net/igc.c @@ -1048,14 +1048,6 @@ static void igc_disable(FAR struct igc_driver_s *priv) { int i = 0; - /* Reset Tx tail */ - - igc_txclean(priv); - - /* Reset Rx tail */ - - igc_rxclean(priv); - /* Disable interrupts */ igc_putreg_mem(priv, IGC_EIMC, IGC_MSIX_EIMS); @@ -1070,6 +1062,14 @@ static void igc_disable(FAR struct igc_driver_s *priv) igc_putreg_mem(priv, IGC_RCTL, 0); + /* Reset Tx tail */ + + igc_txclean(priv); + + /* Reset Rx tail */ + + igc_rxclean(priv); + /* Free RX packets */ for (i = 0; i < IGC_RX_DESC; i += 1)