From: Michal Pecio <michal.pecio@gmail.com>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: "Thinh Nguyen" <Thinh.Nguyen@synopsys.com>,
"Oliver Neukum" <oneukum@suse.com>, "Bjørn Mork" <bjorn@mork.no>,
"USB list" <linux-usb@vger.kernel.org>
Subject: Re: correctly handling EPROTO
Date: Wed, 1 Apr 2026 23:50:22 +0200 [thread overview]
Message-ID: <20260401235022.67037c98.michal.pecio@gmail.com> (raw)
In-Reply-To: <20260330143600.0594f0da.michal.pecio@gmail.com>
On Mon, 30 Mar 2026 14:36:00 +0200, Michal Pecio wrote:
> UVC allows both isoc and bulk transport. I have one bulk device and I
> found that if I randomly change urb->status to -EPROTO, the URB is not
> resubmitted but (on xHCI) the endpoint keeps going, until it stops after
> 5 errors (no URBs left). EHCI would presumably never restart at all.
I tried this again with real transaction errors (dodgy cable) on EHCI
with disabled XactErr retries and I see identical result. Failed URBs
are never submitted again (checked with usbmon) but the endpoint keeps
going as long as there are other URBs remaining.
[285740.194700] usb 4-4: new high-speed USB device number 3 using ehci-pci
[285740.243438] usb 4-4: New USB device found, idVendor=345f, idProduct=2130, bcdDevice=21.00
[285740.243448] usb 4-4: New USB device strings: Mfr=1, Product=2, SerialNumber=7
[285740.243452] usb 4-4: Product: USB3 Video
[285740.243455] usb 4-4: Manufacturer: UltraSemi
[285740.243457] usb 4-4: SerialNumber: 20210621
[285740.263078] uvcvideo 4-4:1.0: Found UVC 1.00 device USB3 Video (345f:2130)
[285745.210034] uvcvideo 4-4:1.0: Allocated 5 URB buffers of 30x512 bytes each
[285745.563613] ehci-pci 0000:08:00.2: devpath 4 ep3in 3strikes
[285745.563667] uvcvideo 4-4:1.1: Non-zero status (-71) in video completion handler.
[285745.830190] ehci-pci 0000:08:00.2: devpath 4 ep3in 3strikes
[285745.830233] uvcvideo 4-4:1.1: Non-zero status (-71) in video completion handler.
[285746.145090] ehci-pci 0000:08:00.2: devpath 4 ep3in 3strikes
[285746.145112] uvcvideo 4-4:1.1: Non-zero status (-71) in video completion handler.
[285746.500756] ehci-pci 0000:08:00.2: devpath 4 ep3in 3strikes
[285746.500778] uvcvideo 4-4:1.1: Non-zero status (-71) in video completion handler.
[285746.771547] ehci-pci 0000:08:00.2: devpath 4 ep3in 3strikes
[285746.771571] uvcvideo 4-4:1.1: Non-zero status (-71) in video completion handler.
# urb1
ffff8881a653ab40 3478085173 C Bi:4:003:3 0 15360 = 0c8d8a89 cd94dc59 d1941900 10801080 10801080 10801080 10801080 10801080
ffff8881a653ab40 3478085194 S Bi:4:003:3 -115 15360 <
# urb2
ffff8881be27dd80 3478085930 C Bi:4:003:3 0 15360 = 0c8d8a89 cd943acd d2941a00 10801080 10801080 10801080 10801080 10801080
ffff8881be27dd80 3478085955 S Bi:4:003:3 -115 15360 <
# urb3
ffff88814746f840 3478086931 C Bi:4:003:3 0 15360 = 0c8d8a89 cd94fe45 d4941b00 10801080 10801080 10801080 10801080 10801080
ffff88814746f840 3478086995 S Bi:4:003:3 -115 15360 <
# urb4
ffff8881617b3480 3478087544 C Bi:4:003:3 0 15360 = 0c8d8a89 cd94fab6 d5941c00 10801080 10801080 10801080 10801080 10801080
ffff8881617b3480 3478087563 S Bi:4:003:3 -115 15360 <
# urb1 errors out
ffff8881a653ab40 3478087703 C Bi:4:003:3 -71 0
# urb2
ffff8881be27dd80 3478088803 C Bi:4:003:3 0 15360 = 0c8d8a89 cd94f730 d7941d00 10801080 10801080 10801080 10801080 10801080
ffff8881be27dd80 3478088813 S Bi:4:003:3 -115 15360 <
# urb3
ffff88814746f840 3478089546 C Bi:4:003:3 0 15360 = 0c8d8a89 cd949cc4 d8941d00 10801080 10801080 10801080 10801080 10801080
ffff88814746f840 3478089554 S Bi:4:003:3 -115 15360 <
...
Not sure why it happens, maybe it's just the async giveback race,
but it worked like that reliably several times.
next prev parent reply other threads:[~2026-04-01 21:50 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-12 13:55 correctly handling EPROTO Oliver Neukum
2026-03-12 14:21 ` Alan Stern
2026-03-12 15:57 ` Oliver Neukum
2026-03-13 7:53 ` Michal Pecio
2026-03-13 10:33 ` Oliver Neukum
2026-03-13 15:28 ` Alan Stern
2026-03-13 22:45 ` Thinh Nguyen
2026-03-14 2:39 ` Alan Stern
2026-03-16 12:58 ` Oliver Neukum
2026-03-16 14:02 ` Alan Stern
2026-03-16 14:47 ` Oliver Neukum
2026-03-16 17:33 ` Alan Stern
2026-03-16 19:32 ` Oliver Neukum
2026-03-17 9:05 ` Mathias Nyman
2026-03-17 14:31 ` Alan Stern
2026-03-17 16:20 ` Oliver Neukum
2026-03-17 18:03 ` Alan Stern
2026-03-18 9:54 ` Oliver Neukum
2026-03-18 17:46 ` Alan Stern
2026-03-18 21:38 ` Michal Pecio
2026-03-18 23:59 ` Thinh Nguyen
2026-03-19 2:07 ` Alan Stern
2026-03-19 23:16 ` Thinh Nguyen
2026-03-20 9:58 ` Michal Pecio
2026-03-20 16:20 ` Alan Stern
2026-03-20 17:49 ` Oliver Neukum
2026-03-21 2:14 ` Thinh Nguyen
2026-03-21 5:54 ` Michal Pecio
2026-03-21 15:58 ` Alan Stern
2026-03-28 21:22 ` Michal Pecio
2026-03-29 1:52 ` Alan Stern
2026-03-29 16:46 ` Michal Pecio
2026-03-30 1:32 ` Alan Stern
2026-03-30 12:36 ` Michal Pecio
2026-04-01 21:50 ` Michal Pecio [this message]
2026-04-02 2:20 ` Alan Stern
2026-03-23 10:26 ` Oliver Neukum
2026-03-24 1:06 ` Thinh Nguyen
2026-03-24 9:28 ` Oliver Neukum
2026-03-24 13:25 ` Alan Stern
2026-03-25 1:44 ` Thinh Nguyen
2026-03-19 1:56 ` Alan Stern
2026-03-19 8:40 ` Mathias Nyman
2026-03-19 23:34 ` Thinh Nguyen
2026-03-19 8:55 ` Michal Pecio
2026-03-19 14:24 ` Alan Stern
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260401235022.67037c98.michal.pecio@gmail.com \
--to=michal.pecio@gmail.com \
--cc=Thinh.Nguyen@synopsys.com \
--cc=bjorn@mork.no \
--cc=linux-usb@vger.kernel.org \
--cc=oneukum@suse.com \
--cc=stern@rowland.harvard.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.