[PATCH v2 0/2] usb: gadget: dummy_hcd: fixes found while testing virtio-usb
Igor Skalkin <[email protected]>
| Newsgroups | org.kernel.vger.linux-usb,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
This is v2 of the dummy_hcd fixes found while testing our upcoming
virtio-usb transport driver (patches for that will follow separately).
Changes since v1:
- Patch 1 (ep0 maxpacket) is unchanged; carrying forward Alan
Stern's Acked-by.
- Patch 2 (false overflow on bounded IN) is dropped. Alan Stern
pointed out the fix was wrong: an IN short packet where the
device has more data queued than the host's buffer can hold is a
genuine overflow, not a normal bounded completion. Agreed, and
there's no replacement fix queued for this report.
- Patch 3 (SG transfer handling across chunks) is dropped from this
version. Alan Stern confirmed the underlying issue and suggested
a simpler fix (resync the sg_miter with sg_miter_skip() after each
consumed chunk instead of restarting and re-walking from
urb->actual_length on every call). The original failure was
reliably reproducible against an earlier, debug-instrumented
version of our (not yet posted) virtio-usb transport driver, but
is not currently reproducing against the current version of that
driver, which makes it hard to verify a replacement fix with any
confidence. I'd rather confirm a fix against a real reproduction
before resending than resend an unverified change, so this patch
is held back for now and will follow separately once reproduced
again.
- Patch 4 (no_sg_constraint) is reworked per Alan Stern's review:
instead of unconditionally relaxing the SG alignment constraint,
it is now only relaxed on the SuperSpeed bus, preserving the
EHCI-style alignment emulation on the HighSpeed bus.
Igor Skalkin (2):
usb: gadget: dummy_hcd: fix SuperSpeed ep0 maxpacket
usb: gadget: dummy_hcd: set no_sg_constraint only on the SuperSpeed
bus
drivers/usb/gadget/udc/dummy_hcd.c | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
--
2.49.0