net: ethernet: mtk_eth_soc: reduce unnecessary interrupts
authorFelix Fietkau <nbd@nbd.name>
Fri, 23 Apr 2021 05:21:05 +0000 (22:21 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 23 Apr 2021 20:31:58 +0000 (13:31 -0700)
Avoid rearming interrupt if napi_complete returns false

Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Ilya Lipnitskiy <ilya.lipnitskiy@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mediatek/mtk_eth_soc.c

index 4735942..e1792cc 100644 (file)
@@ -1519,8 +1519,8 @@ static int mtk_napi_tx(struct napi_struct *napi, int budget)
        if (status & MTK_TX_DONE_INT)
                return budget;
 
-       napi_complete(napi);
-       mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
+       if (napi_complete(napi))
+               mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
 
        return tx_done;
 }
@@ -1553,8 +1553,9 @@ poll_again:
                remain_budget -= rx_done;
                goto poll_again;
        }
-       napi_complete(napi);
-       mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
+
+       if (napi_complete(napi))
+               mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
 
        return rx_done + budget - remain_budget;
 }