]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: napi: Avoid gro timer misfiring at end of busypoll
authorDragos Tatulea <dtatulea@nvidia.com>
Wed, 6 May 2026 09:08:08 +0000 (09:08 +0000)
committerJakub Kicinski <kuba@kernel.org>
Fri, 8 May 2026 22:02:32 +0000 (15:02 -0700)
commit58e2330bd45572a6e3d46ea94cf7a9641f43591a
tree7464c1a0ec883a61a24015e38137d70e2781ae38
parentdffddaa0cea5849e2bd1f357d166a86c2f6cded4
net: napi: Avoid gro timer misfiring at end of busypoll

When in irq deferral mode (defer-hard-irqs > 0), a short enough
gro-flush timeout can trigger before NAPI_STATE_SCHED is cleared if the
last poll in busy_poll_stop() takes too long. This can have the effect
of leaving the queue stuck with interrupts disabled and no timer armed
which results in a tx timeout if there is no subsequent busypoll cycle.

To prevent this, defer the gro-flush timer arm after the last poll.

Fixes: 7fd3253a7de6 ("net: Introduce preferred busy-polling")
Co-developed-by: Martin Karsten <mkarsten@uwaterloo.ca>
Signed-off-by: Martin Karsten <mkarsten@uwaterloo.ca>
Signed-off-by: Dragos Tatulea <dtatulea@nvidia.com>
Reviewed-by: Tariq Toukan <tariqt@nvidia.com>
Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com>
Reviewed-by: Joe Damato <joe@dama.to>
Link: https://patch.msgid.link/20260506090808.820559-2-dtatulea@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/core/dev.c