Skip to contentSkip to conversation

sky2: Reset tx train after interrupts disabled

PATCH New Mike McCormack 1 participant 1 message Aug 4, 2009

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 2/2 sky2: Reset tx train after interrupts disabled

Reseting the tx chain too soon results in invalid tx queue positions being delivered in the status queue. This also makes sure there's no overlap between the cleanup done by sky2_tx_clean() and sky2_tx_done().

---
 drivers/net/sky2.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
drivers/net/sky2.c +2 -2
index cb3412a..e9cb1e7 100644
@@ -1875,8 +1875,6 @@ static int sky2_down(struct net_device *dev)
 	      && port == 0 && hw->dev[1] && netif_running(hw->dev[1])))
 		sky2_write8(hw, SK_REG(port, GMAC_CTRL), GMC_RST_SET);
 
-	sky2_tx_reset(sky2);
-
 	sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
 
 	/* Force any delayed status interrrupt and NAPI */
@@ -1901,6 +1899,8 @@ static int sky2_down(struct net_device *dev)
 	/* turn off LED's */
 	sky2_write16(hw, B0_Y2LED, LED_STAT_OFF);
 
+	sky2_tx_reset(sky2);
+
 	sky2_tx_clean(dev);
 	sky2_rx_clean(sky2);
 
Signature · 1 line
1.5.6.5