diff --git a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c b/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c index 3a8475a63d..96bc0e5fb1 100644 --- a/target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c +++ b/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))) {