Browse Source

ralink: fix when tx done is 0 also need to clean interrupt status

Signed-off-by: michael lee <[email protected]>
Signed-off-by: John Crispin <[email protected]>

SVN-Revision: 44401
John Crispin 11 years ago
parent
commit
0f4431758b

+ 3 - 3
target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c

@@ -899,9 +899,6 @@ txpoll_again:
 	}
 	priv->tx_free_idx = idx;
 
-	if (!done)
-		return 0;
-
 	if (budget) {
 		fe_reg_w32(tx_intr, FE_REG_FE_INT_STATUS);
 		hwidx = fe_reg_r32(FE_REG_TX_DTX_IDX0);
@@ -909,6 +906,9 @@ txpoll_again:
 			goto txpoll_again;
 	}
 
+	if (!done)
+		return 0;
+
 	netdev_completed_queue(netdev, done, bytes_compl);
 	if (unlikely(netif_queue_stopped(netdev) &&
 				netif_carrier_ok(netdev))) {