Linux-USB Archive on lore.kernel.org
 help / color / Atom feed
From: Alan Stern <stern@rowland.harvard.edu>
To: Bin Liu <b-liu@ti.com>, linux-usb@vger.kernel.org
Subject: Re: [PATCH] usb: musb: return -ESHUTDOWN in urb when three-strikes error happened
Date: Tue, 19 May 2020 16:01:58 -0400
Message-ID: <20200519200158.GA1339@rowland.harvard.edu> (raw)
In-Reply-To: <20200519171255.GE11463@iaqt7>

On Tue, May 19, 2020 at 12:12:55PM -0500, Bin Liu wrote:
> On Thu, May 14, 2020 at 02:55:49PM -0400, Alan Stern wrote:
> > On Thu, May 14, 2020 at 12:00:23PM -0500, Bin Liu wrote:
> > 
> > > > Still, it's worth pointing out that this change abuses the API (perhaps 
> > > > mentioning it in a comment).  And it still would be preferable to fix 
> > > 
> > > Okay, I will add those notes in comment in v2.
> > > 
> > > > the drivers in question, impractical though that may be.  (I have a hard 
> > > > time believing there are really 500 of them getting this wrong...)
> > > 
> > > I am not sure about it either, but yeah it is not practical to fix the
> > > issue in device drivers. So far I have seen 3 reports of this issue:
> > > 
> > > 1. with FTDI usb-serial adapter, the issue is in the usb serial generic
> > > driver;
> > 
> > It shouldn't be hard to fix this.  We don't even need a delayed retry; 
> > the driver can simply treat -EPROTO as an unrecoverable error, just like 
> > -ESHUTDOWN.
> 
> This is just an example showing that it is not practical to fix the
> problem in device drivers.
> 
> BTY, I just briefly searched the drivers/ folder, there are only three
> drivers handle -EPROTO specifically in rx callback and bail out. So
> seems most drivers do not care about -EPROTO.

Then do you think we should change the API?

Right now it's a little too complicated.  There's no real reason for 
EPROTO, EILSEQ, and ETIME to be different codes.  And now you seem to be 
suggesting that we should fold them all into ESHUTDOWN.

Alan Stern

  reply index

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-13 21:36 Bin Liu
2020-05-14  1:32 ` Alan Stern
2020-05-14 14:28   ` Bin Liu
2020-05-14 14:40     ` Alan Stern
2020-05-14 15:02       ` Bin Liu
2020-05-14 15:37         ` Bin Liu
2020-05-14 16:26           ` Alan Stern
2020-05-14 17:00             ` Bin Liu
2020-05-14 18:55               ` Alan Stern
2020-05-19 17:12                 ` Bin Liu
2020-05-19 20:01                   ` Alan Stern [this message]
2020-05-20 14:31                     ` Bin Liu
2020-05-20 16:40                       ` Alan Stern
2020-05-20 18:05                         ` Bin Liu
2020-05-20 18:25                           ` Alan Stern
2020-05-20 18:59                             ` Bin Liu
2020-05-19 17:28             ` [PATCH v2] " Bin Liu

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=20200519200158.GA1339@rowland.harvard.edu \
    --to=stern@rowland.harvard.edu \
    --cc=b-liu@ti.com \
    --cc=linux-usb@vger.kernel.org \
    /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

Linux-USB Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-usb/0 linux-usb/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-usb linux-usb/ https://lore.kernel.org/linux-usb \
		linux-usb@vger.kernel.org
	public-inbox-index linux-usb

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.kernel.vger.linux-usb


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git