610-v5.13-48-net-ethernet-mtk_eth_soc-reduce-unnecessary-interrup.patch 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. From 16769a8923fad5a5377253bcd76b0e0d64976c73 Mon Sep 17 00:00:00 2001
  2. From: Felix Fietkau <[email protected]>
  3. Date: Thu, 22 Apr 2021 22:21:05 -0700
  4. Subject: [PATCH] net: ethernet: mtk_eth_soc: reduce unnecessary interrupts
  5. Avoid rearming interrupt if napi_complete returns false
  6. Signed-off-by: Felix Fietkau <[email protected]>
  7. Signed-off-by: Ilya Lipnitskiy <[email protected]>
  8. Signed-off-by: David S. Miller <[email protected]>
  9. ---
  10. drivers/net/ethernet/mediatek/mtk_eth_soc.c | 9 +++++----
  11. 1 file changed, 5 insertions(+), 4 deletions(-)
  12. --- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  13. +++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
  14. @@ -1540,8 +1540,8 @@ static int mtk_napi_tx(struct napi_struc
  15. if (status & MTK_TX_DONE_INT)
  16. return budget;
  17. - napi_complete(napi);
  18. - mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
  19. + if (napi_complete(napi))
  20. + mtk_tx_irq_enable(eth, MTK_TX_DONE_INT);
  21. return tx_done;
  22. }
  23. @@ -1574,8 +1574,9 @@ poll_again:
  24. remain_budget -= rx_done;
  25. goto poll_again;
  26. }
  27. - napi_complete(napi);
  28. - mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
  29. +
  30. + if (napi_complete(napi))
  31. + mtk_rx_irq_enable(eth, MTK_RX_DONE_INT);
  32. return rx_done + budget - remain_budget;
  33. }