Files
linux/drivers
Heiner Kallweit ed39b14dc9 r8169: fix NAPI handling under high load
[ Upstream commit 6b839b6cf9 ]

rtl_rx() and rtl_tx() are called only if the respective bits are set
in the interrupt status register. Under high load NAPI may not be
able to process all data (work_done == budget) and it will schedule
subsequent calls to the poll callback.
rtl_ack_events() however resets the bits in the interrupt status
register, therefore subsequent calls to rtl8169_poll() won't call
rtl_rx() and rtl_tx() - chip interrupts are still disabled.

Fix this by calling rtl_rx() and rtl_tx() independent of the bits
set in the interrupt status register. Both functions will detect
if there's nothing to do for them.

Fixes: da78dbff2e ("r8169: remove work from irq handler.")
Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2023-05-15 09:15:01 +09:00
..
2023-05-12 16:27:16 +09:00
2023-05-12 16:28:00 +09:00
2018-07-03 18:27:19 +02:00
2018-05-30 13:19:56 +02:00
2018-02-25 11:05:55 +01:00
2023-05-12 16:57:29 +09:00
2017-09-09 17:39:41 +02:00
2018-05-25 17:06:35 +02:00
2023-05-12 17:05:02 +09:00
2023-05-12 16:37:13 +09:00
2023-05-15 08:28:33 +09:00
2018-07-03 18:27:19 +02:00