ralink: fix when tx done is 0 also need to clean interrupt status
authorJohn Crispin <john@openwrt.org>
Wed, 11 Feb 2015 13:05:14 +0000 (13:05 +0000)
committerJohn Crispin <john@openwrt.org>
Wed, 11 Feb 2015 13:05:14 +0000 (13:05 +0000)
Signed-off-by: michael lee <igvtee@gmail.com>
Signed-off-by: John Crispin <blogic@openwrt.org>
SVN-Revision: 44401

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

index 3a8475a63ddc7b06921f9f19d610c67d62cc15b8..96bc0e5fb1163c530cf61f14a3ab11ca643d1875 100644 (file)
@@ -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))) {