mirror of
https://github.com/openwrt/openwrt.git
synced 2026-10-14 02:19:06 +04:00
fe_poll() enables the RX and TX interrupts after napi_complete_done() without looking at its return value. napi_complete_done() returns false when the interrupts have to stay masked, for example during busy polling, or when IRQ deferral (napi_defer_hard_irqs together with gro_flush_timeout) has armed a timer to poll again. Only enable the interrupts when it returns true, as Documentation/networking/napi.rst asks. The mainline mtk_eth_soc driver does the same in mtk_napi_rx() and mtk_napi_tx(). The value that fe_poll() returns does not change. Fixes: https://github.com/openwrt/openwrt/issues/25742 Signed-off-by: Hsiu-Chi Tsai <hctsai@linux.com> Link: https://github.com/openwrt/openwrt/pull/25744 Signed-off-by: Jonas Jelonek <jonas@jonasjelonek.de>