]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: airoha: Fix possible TX queue stall in airoha_qdma_tx_napi_poll()
authorLorenzo Bianconi <lorenzo@kernel.org>
Thu, 16 Apr 2026 10:30:12 +0000 (12:30 +0200)
committerJakub Kicinski <kuba@kernel.org>
Mon, 20 Apr 2026 18:43:40 +0000 (11:43 -0700)
commitb94769eb2f30e61e86cd8551c084c34134290d89
tree2ab9cba1b24ba31bfea78f3c0ebd4fcc4e632711
parent2091c6aa0df6aba47deb5c8ab232b1cb60af3519
net: airoha: Fix possible TX queue stall in airoha_qdma_tx_napi_poll()

Since multiple net_device TX queues can share the same hw QDMA TX queue,
there is no guarantee we have inflight packets queued in hw belonging to a
net_device TX queue stopped in the xmit path because hw QDMA TX queue
can be full. In this corner case the net_device TX queue will never be
re-activated. In order to avoid any potential net_device TX queue stall,
we need to wake all the net_device TX queues feeding the same hw QDMA TX
queue in airoha_qdma_tx_napi_poll routine.

Fixes: 23020f0493270 ("net: airoha: Introduce ethernet support for EN7581 SoC")
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20260416-airoha-txq-potential-stall-v2-1-42c732074540@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/airoha/airoha_eth.c
drivers/net/ethernet/airoha/airoha_eth.h