When the RX ring runs out of buffers the OOM path calls napi_complete() but does not re-enable interrupts. Because INT_POLL masks both RX and TX events, TX completions are blocked until the OOM timer fires (~100 ms), which can cause TX ring exhaustion and dropped packets. Restore TX interrupt delivery so the engine can drain completed descriptors while NAPI waits for RX buffer memory. Assisted-by: opencode:big-pickle Signed-off-by: Rosen Penev --- drivers/net/ethernet/atheros/ag71xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ethernet/atheros/ag71xx.c b/drivers/net/ethernet/atheros/ag71xx.c index 77f8e75e98ac..a4e52bc42091 100644 --- a/drivers/net/ethernet/atheros/ag71xx.c +++ b/drivers/net/ethernet/atheros/ag71xx.c @@ -1720,6 +1720,7 @@ static int ag71xx_poll(struct napi_struct *napi, int limit) mod_timer(&ag->oom_timer, jiffies + AG71XX_OOM_REFILL); napi_complete(napi); + ag71xx_int_enable(ag, AG71XX_INT_TX); return 0; } -- 2.54.0