linux/drivers/net/mctp
Jinliang Wang da2522df3f 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: 0791c0327a ("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>
2025-10-29 17:55:14 -07:00
..
Kconfig net: mctp: Add MCTP USB transport driver 2025-02-21 16:45:21 -08:00
Makefile net: mctp: Add MCTP USB transport driver 2025-02-21 16:45:21 -08:00
mctp-i2c.c mctp: Fix incorrect tx flow invalidation condition in mctp-i2c 2025-03-26 13:03:59 +00:00
mctp-i3c.c net: mctp i3c: Copy headers if cloned 2025-03-07 19:41:10 -08:00
mctp-serial.c net: mctp: Expose transport binding identifier via IFLA attribute 2024-11-09 09:04:54 -08:00
mctp-usb.c net: mctp: Fix tx queue stall 2025-10-29 17:55:14 -07:00