mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Sean Young <sean@mess.org>
To: Alan Stern <stern@rowland.harvard.edu>
Cc: Hillf Danton <hdanton@sina.com>,
	Tetsuo Handa <penguin-kernel@i-love.sakura.ne.jp>,
	syzbot+592e2ab8775dbe0bf09a@syzkaller.appspotmail.com,
	LKML <linux-kernel@vger.kernel.org>,
	Mauro Carvalho Chehab <mchehab@kernel.org>
Subject: Re: [PATCH] media: imon: make send_packet() more robust
Date: Wed, 16 Jul 2025 10:38:23 +0100	[thread overview]
Message-ID: <aHdzD7EowAKT4AhQ@gofer.mess.org> (raw)
In-Reply-To: <c4e88c28-28ee-4e37-9822-8e2999d0f0ee@rowland.harvard.edu>

On Tue, Jul 15, 2025 at 09:30:02PM -0400, Alan Stern wrote:
> On Tue, Jul 15, 2025 at 09:19:18PM +0100, Sean Young wrote:
> > Hi Alan,
> > 
> > On Sun, Jul 13, 2025 at 11:21:24AM -0400, Alan Stern wrote:
> > > On Sun, Jul 13, 2025 at 04:11:47PM +0800, Hillf Danton wrote:
> > > > [loop Alan in]
> > > 
> > > I assume you're interested in the question of when to avoid resubmitting 
> > > URBs.
> 
> > > In theory it's okay to resubmit _if_ the driver has a robust 
> > > error-recovery scheme (such as giving up after some fixed limit on the 
> > > number of errors or after some fixed time has elapsed, perhaps with a 
> > > time delay to prevent a flood of errors).  Most drivers don't bother to 
> > > do this; they simply give up right away.  This makes them more 
> > > vulnerable to short-term noise interference during USB transfers, but in 
> > > reality such interference is quite rare.  There's nothing really wrong 
> > > with giving up right away.
> > > 
> > > As to which error codes drivers should pay attention to...  In most 
> > > cases they only look at -EPROTO.  According to 
> > > Documentation/driver-api/usb/error-codes.rst, -EILSEQ and -ETIME are 
> > > also possible errors when a device has been unplugged, so it wouldn't 
> > > hurt to check for them too.  But most host controller drivers don't 
> > > bother to issue them; -EPROTO is by far the most common error code 
> > > following an unplug.
> > 
> > Thank you for explaining that, very helpful. Would it be useful to have
> > this in the USB completion handler documentation?
> 
> I don't know what USB completion handler documentation you're talking 
> about.  Is it something in the Documentation/ directory?  If it is then 
> it should already include or refer to error-codes.rst.

I can't see anything in error-codes.rst or URB.rst about the possibility
of retrying after -EPROTO errors or how the callback should respond if
it wants to give up. USB drivers seem to do all manner of different things.

> > I think that is why this driver code is so awkward.
> 
> That's what usb_driver_claim_interface() is for.  IIRC, the cdc-acm 
> driver uses it in exactly this way.

Very interesting, we should look at re-writing this driver. Note this
function is not documented in Documentation/driver-api/usb/

Thank you for your help

Sean

  reply	other threads:[~2025-07-16  9:38 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-11-09 14:37 [syzbot] [usb?] INFO: task hung in uevent_show (2) syzbot
2024-11-10  0:59 ` syzbot
2025-07-10 11:05   ` Hillf Danton
2025-07-10 11:59     ` [syzbot] [kernel?] " syzbot
2025-07-10 12:59   ` [syzbot] [usb?] " Hillf Danton
2025-07-10 13:25     ` [syzbot] [kernel?] " syzbot
2025-07-09  4:39 ` [syzbot] [usb?] " Tetsuo Handa
2025-07-09 14:03   ` [syzbot] [kernel?] " syzbot
2025-07-09 14:13     ` Tetsuo Handa
2025-07-09 14:27       ` Alan Stern
2025-07-09 14:44         ` Tetsuo Handa
2025-07-09 15:19           ` Alan Stern
2025-07-09 15:33             ` Tetsuo Handa
2025-07-09 15:41               ` Alan Stern
2025-07-10 10:17                 ` Tetsuo Handa
2025-07-10 14:13                   ` Alan Stern
2025-07-09 14:15   ` [syzbot] [usb?] " Tetsuo Handa
2025-07-09 14:44     ` [syzbot] [kernel?] " syzbot
2025-07-09 15:01       ` Tetsuo Handa
2025-07-11 11:09     ` [syzbot] [usb?] " Tetsuo Handa
2025-07-11 11:44       ` [syzbot] [kernel?] " syzbot
2025-07-11 11:52       ` [syzbot] [usb?] " Tetsuo Handa
2025-07-11 12:13         ` [syzbot] [kernel?] " syzbot
2025-07-11 13:34         ` [syzbot] [usb?] " Tetsuo Handa
2025-07-11 14:09           ` [syzbot] [kernel?] " syzbot
2025-07-11 15:01           ` [syzbot] [usb?] " Tetsuo Handa
2025-07-11 15:46             ` [syzbot] [kernel?] " syzbot
2025-07-12 14:40             ` [syzbot] [usb?] " Tetsuo Handa
2025-07-12 15:18               ` [syzbot] [kernel?] " syzbot
2025-07-12 15:41               ` [syzbot] [usb?] " Tetsuo Handa
2025-07-12 17:43                 ` [syzbot] [kernel?] " syzbot
2025-07-13  7:50                 ` [PATCH] media: imon: make send_packet() more robust Tetsuo Handa
2025-07-13  8:11                   ` Hillf Danton
2025-07-13 15:21                     ` Alan Stern
2025-07-15 20:19                       ` Sean Young
2025-07-16  1:30                         ` Alan Stern
2025-07-16  9:38                           ` Sean Young [this message]
2025-07-16 10:09                             ` Tetsuo Handa
2025-07-16 11:55                               ` Hillf Danton
2025-07-16 12:47                               ` Sean Young
2025-07-16 14:07                                 ` [PATCH v2] " Tetsuo Handa
2025-07-16 14:45                                   ` Alan Stern
2025-07-17 14:21                                     ` [PATCH v3] " Tetsuo Handa
2025-07-16 14:38                             ` [PATCH] " Alan Stern
2025-07-13  8:29                   ` [syzbot] [kernel?] INFO: task hung in uevent_show (2) syzbot

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=aHdzD7EowAKT4AhQ@gofer.mess.org \
    --to=sean@mess.org \
    --cc=hdanton@sina.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=penguin-kernel@i-love.sakura.ne.jp \
    --cc=stern@rowland.harvard.edu \
    --cc=syzbot+592e2ab8775dbe0bf09a@syzkaller.appspotmail.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome