]> git.ipfire.org Git - thirdparty/linux.git/commit
net: mctp: Fix tx queue stall
authorJinliang Wang <jinliangw@google.com>
Mon, 27 Oct 2025 06:55:30 +0000 (23:55 -0700)
committerJakub Kicinski <kuba@kernel.org>
Thu, 30 Oct 2025 00:55:14 +0000 (17:55 -0700)
commitda2522df3fcc6f57068470cbdcd6516d9eb76b37
tree5485c4c38de982255fdb272476205d10ea87ada7
parent53110232c95ff56067fd96c75a1a1c53d10dcd98
net: mctp: Fix tx queue stall

The tx queue can become permanently stuck in a stopped state due to a
race condition between the URB submission path and its completion
callback.

The URB completion callback can run immediately after usb_submit_urb()
returns, before the submitting function calls netif_stop_queue(). If
this occurs, the queue state management becomes desynchronized, leading
to a stall where the queue is never woken.

Fix this by moving the netif_stop_queue() call to before submitting the
URB. This closes the race window by ensuring the network stack is aware
the queue is stopped before the URB completion can possibly run.

Fixes: 0791c0327a6e ("net: mctp: Add MCTP USB transport driver")
Signed-off-by: Jinliang Wang <jinliangw@google.com>
Acked-by: Jeremy Kerr <jk@codeconstruct.com.au>
Link: https://patch.msgid.link/20251027065530.2045724-1-jinliangw@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/mctp/mctp-usb.c