Re: [PATCH net v2] net: ag71xx: re-enable TX interrupts on RX OOM
From: Daniel Machon
Date: Mon Oct 19 2026 - 05:55:21 EST
> 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.
Is that not exactly what the OOM timer is for? It schedules napi and tx buffers
will eventually be freed. I mean, it seems like it was designed to work like
this.
>
> Restore TX interrupt delivery so the engine can drain completed
> descriptors while NAPI waits for RX buffer memory.
>
> Fixes: d51b6ce441d3 ("net: ethernet: add ag71xx driver")
> Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
> ---
> v2: add Fixes: .
> 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 d93fd91ff884..5a33759be3cf 100644
> --- a/drivers/net/ethernet/atheros/ag71xx.c
> +++ b/drivers/net/ethernet/atheros/ag71xx.c
> @@ -1746,6 +1746,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.56.0
>
/Daniel