Linux USB
 help / color / mirror / Atom feed
* [PATCH v8 0/4] usb: gadget: gadgetfs: fix ep0 request lifetime and event counter
@ 2026-11-10  4:13 Jing Lin via B4 Relay
  2026-11-10  4:13 ` [PATCH v8 1/4] usb: gadget: gadgetfs: fix ep0 request lifetime and buffer races Jing Lin via B4 Relay
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Jing Lin via B4 Relay @ 2026-11-10  4:13 UTC (permalink / raw)
  To: Neill Kapron, Greg Kroah-Hartman
  Cc: Jing Lin, linux-usb, linux-kernel, syzbot+c73e1942197af9f54ca3,
	stable, Alan Stern

This series fixes the ep0 request lifetime and shared request buffer
races in gadgetfs, and the pre-existing event counter underflow.

The first patch covers request lifetime and buffer ownership, the second
the ep0 setup abort and unbind state races, the third the event counter
underflow, and the fourth removes the const cast in gadgetfs_setup().

The setup() callback runs in interrupt context and may not sleep, so a
mutex cannot be used to serialize it against ep0_read() and ep0_write().
The shared request state remains protected by dev->lock and the control
payloads are handed off through private buffers.

The series was tested with the syzbot reproducer and with targeted
lifecycle, request-reuse, abort, unbind, stale-setup, and event-counter
tests on arm64 QEMU with dummy_hcd, KASAN, and lockdep.  The syzbot
reproducer still exits 137 on the fixed kernel without a BUG, WARNING,
KASAN report, or lockdep splat.

Signed-off-by: Jing Lin <kayano050408@gmail.com>
---
Changes in v8:
- Discard a queued but uncollected GADGETFS_SETUP event when a new SETUP
  arrives, so userspace cannot queue a response for a control transfer
  the host has already superseded.
- Link to v7: https://patch.msgid.link/20261110-gadgetfs-v7-v7-0-6d05409cc61a@gmail.com

To: Neill Kapron <nkapron@google.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-usb@vger.kernel.org
Cc: linux-kernel@vger.kernel.org

---
Jing Lin (4):
      usb: gadget: gadgetfs: fix ep0 request lifetime and buffer races
      usb: gadget: gadgetfs: fix ep0 setup abort and unbind state races
      usb: gadget: gadgetfs: prevent ep0 event counter underflow
      usb: gadget: gadgetfs: avoid writing through the const setup pointer

 drivers/usb/gadget/legacy/inode.c | 437 ++++++++++++++++++++++++++------------
 1 file changed, 305 insertions(+), 132 deletions(-)
---
base-commit: f66469d9905b39d2c260a15d7d6db450f4db67c1
change-id: 20261110-gadgetfs-ep0-v8-3c74ae91521a

Best regards,
--  
Jing Lin <kayano050408@gmail.com>



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2026-11-10 22:49 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-10  4:13 [PATCH v8 0/4] usb: gadget: gadgetfs: fix ep0 request lifetime and event counter Jing Lin via B4 Relay
2026-11-10  4:13 ` [PATCH v8 1/4] usb: gadget: gadgetfs: fix ep0 request lifetime and buffer races Jing Lin via B4 Relay
2026-11-10  4:40   ` sashiko-bot
2026-11-10  4:13 ` [PATCH v8 2/4] usb: gadget: gadgetfs: fix ep0 setup abort and unbind state races Jing Lin via B4 Relay
2026-11-10  4:36   ` sashiko-bot
2026-11-10  4:13 ` [PATCH v8 3/4] usb: gadget: gadgetfs: prevent ep0 event counter underflow Jing Lin via B4 Relay
2026-11-10  4:34   ` sashiko-bot
2026-11-10  4:13 ` [PATCH v8 4/4] usb: gadget: gadgetfs: avoid writing through the const setup pointer Jing Lin via B4 Relay
2026-11-10  4:18   ` sashiko-bot
2026-11-10 22:49 ` [PATCH v8 0/4] usb: gadget: gadgetfs: fix ep0 request lifetime and event counter Alan Stern

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox