diff options
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/ramips/files/drivers/net/ethernet/ralink/ralink_soc_eth.c | 5 |
1 files changed, 4 insertions, 1 deletions
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 05b810a78a..0f3009cc73 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 @@ -991,8 +991,11 @@ static int fe_poll(struct napi_struct *napi, int budget) if (!tx_again && (rx_done < budget)) { status = fe_reg_r32(FE_REG_FE_INT_STATUS); - if (status & (tx_intr | rx_intr )) + if (status & (tx_intr | rx_intr)) { + /* let napi poll again */ + rx_done = budget; goto poll_again; + } napi_complete(napi); fe_int_enable(tx_intr | rx_intr); |