2008-12-02 13:51:27

by Marc Haber

[permalink] [raw]
Subject: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

Hi,

the following applies to a "vanilla" 2.6.27.7 kernel built and running
on a Debian unstable system.

To obtain out-of-band access to a number of switches and routers, I
have a seven-port USB hub to which seven identical USB-to-serial
adaptors using the PL2303 chip and driver are connected. All seven
work when only one of them is used at a time.

Cereal is an application which keeps a process (GNU screen) attached
to the tty at all times to be able to log what happens on the serial
port. When I start cereal on all seven ports, I start getting
"pl2303_open - failed submitting interrupt urb, error -28" errors in
my syslog:

Dec 2 14:07:36 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:37 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:38 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:41 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:47 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:48 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
Dec 2 14:07:49 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28

The corresponding ports are not useable in that case.

When one googles for this error message, one finds a thread from 2006
with Greg KH commenting. In my case, the error doesn't hose the USB
subsystem, I can unplug the adapters and plug them in again one and a
time without a problem, and I can even use the ports that don't throw
this error message.

As in the 2006 thread, unloading the EHCI driver (ehci_hcd) solves the
issue, but is of course not an attractive option as soon as one wants
to use even a USB stick on the same machine.

If it helps, I can give out root access to the box in question to
anybody who is willing to help and debug. Unfortunately, I cannot
provide any expertise here, I do not even know what an interrupt urb is.

Any hints will be appreciated.

Greetings
Marc

--
-----------------------------------------------------------------------------
Marc Haber | "I don't trust Computers. They | Mailadresse im Header
Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834
Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190


2008-12-03 09:42:50

by Andrew Morton

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

(cc linux-usb)

On Tue, 2 Dec 2008 14:18:21 +0100 Marc Haber <[email protected]> wrote:

> Hi,
>
> the following applies to a "vanilla" 2.6.27.7 kernel built and running
> on a Debian unstable system.
>
> To obtain out-of-band access to a number of switches and routers, I
> have a seven-port USB hub to which seven identical USB-to-serial
> adaptors using the PL2303 chip and driver are connected. All seven
> work when only one of them is used at a time.
>
> Cereal is an application which keeps a process (GNU screen) attached
> to the tty at all times to be able to log what happens on the serial
> port. When I start cereal on all seven ports, I start getting
> "pl2303_open - failed submitting interrupt urb, error -28" errors in
> my syslog:
>
> Dec 2 14:07:36 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:37 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:38 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:41 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:47 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:48 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> Dec 2 14:07:49 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
>
> The corresponding ports are not useable in that case.
>
> When one googles for this error message, one finds a thread from 2006
> with Greg KH commenting. In my case, the error doesn't hose the USB
> subsystem, I can unplug the adapters and plug them in again one and a
> time without a problem, and I can even use the ports that don't throw
> this error message.
>
> As in the 2006 thread, unloading the EHCI driver (ehci_hcd) solves the
> issue, but is of course not an attractive option as soon as one wants
> to use even a USB stick on the same machine.
>
> If it helps, I can give out root access to the box in question to
> anybody who is willing to help and debug. Unfortunately, I cannot
> provide any expertise here, I do not even know what an interrupt urb is.
>
> Any hints will be appreciated.
>
> Greetings
> Marc

2008-12-03 15:49:20

by Greg KH

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

On Wed, Dec 03, 2008 at 01:42:08AM -0800, Andrew Morton wrote:
> (cc linux-usb)
>
> On Tue, 2 Dec 2008 14:18:21 +0100 Marc Haber <[email protected]> wrote:
>
> > Hi,
> >
> > the following applies to a "vanilla" 2.6.27.7 kernel built and running
> > on a Debian unstable system.
> >
> > To obtain out-of-band access to a number of switches and routers, I
> > have a seven-port USB hub to which seven identical USB-to-serial
> > adaptors using the PL2303 chip and driver are connected. All seven
> > work when only one of them is used at a time.
> >
> > Cereal is an application which keeps a process (GNU screen) attached
> > to the tty at all times to be able to log what happens on the serial
> > port. When I start cereal on all seven ports, I start getting
> > "pl2303_open - failed submitting interrupt urb, error -28" errors in
> > my syslog:
> >
> > Dec 2 14:07:36 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:37 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:38 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:41 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:43 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:47 alemana kernel: pl2303 ttyUSB2: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:48 alemana kernel: pl2303 ttyUSB5: pl2303_open - failed submitting interrupt urb, error -28
> > Dec 2 14:07:49 alemana kernel: pl2303 ttyUSB6: pl2303_open - failed submitting interrupt urb, error -28
> >
> > The corresponding ports are not useable in that case.
> >
> > When one googles for this error message, one finds a thread from 2006
> > with Greg KH commenting. In my case, the error doesn't hose the USB
> > subsystem, I can unplug the adapters and plug them in again one and a
> > time without a problem, and I can even use the ports that don't throw
> > this error message.
> >
> > As in the 2006 thread, unloading the EHCI driver (ehci_hcd) solves the
> > issue, but is of course not an attractive option as soon as one wants
> > to use even a USB stick on the same machine.

I would suggest using a USB 1.1 hub instead if you have to use this kind
of hardware set up. I think the core is just not able to schedule so
many interrupt urbs with such a setup, running USB 1.1 devices behind a
USB 2.0 hub like this is a very difficult thing to do.

Sorry I don't have a better solution.

thanks,

greg k-h

2008-12-05 12:10:38

by Marc Haber

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

On Wed, Dec 03, 2008 at 07:47:25AM -0800, Greg KH wrote:
> I would suggest using a USB 1.1 hub instead if you have to use this kind
> of hardware set up.

It is nearly impossible to buy that kind of hardware at the current
time.

> I think the core is just not able to schedule so many interrupt urbs
> with such a setup, running USB 1.1 devices behind a USB 2.0 hub like
> this is a very difficult thing to do.
>
> Sorry I don't have a better solution.

Is it possible to disable USB 2.0 for selected links?

Greetings
Marc

--
-----------------------------------------------------------------------------
Marc Haber | "I don't trust Computers. They | Mailadresse im Header
Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834
Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

2008-12-05 16:03:50

by Alan Stern

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

On Fri, 5 Dec 2008, Marc Haber wrote:

> On Wed, Dec 03, 2008 at 07:47:25AM -0800, Greg KH wrote:
> > I would suggest using a USB 1.1 hub instead if you have to use this kind
> > of hardware set up.
>
> It is nearly impossible to buy that kind of hardware at the current
> time.
>
> > I think the core is just not able to schedule so many interrupt urbs
> > with such a setup, running USB 1.1 devices behind a USB 2.0 hub like
> > this is a very difficult thing to do.
> >
> > Sorry I don't have a better solution.
>
> Is it possible to disable USB 2.0 for selected links?

Yes it is. You can force port P of the EHCI controller on bus B to run
at low/full speed by doing:

echo P >/sys/class/usb_host/usb_hostB/companion

To allow port P to run at high speed again, use the same command but
write -P instead of P.

Alan Stern

2008-12-09 20:11:43

by Marc Haber

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

On Fri, Dec 05, 2008 at 11:03:41AM -0500, Alan Stern wrote:
> Yes it is. You can force port P of the EHCI controller on bus B to run
> at low/full speed by doing:
>
> echo P >/sys/class/usb_host/usb_hostB/companion
>
> To allow port P to run at high speed again, use the same command but
> write -P instead of P.

I will try that and report back.

Greetings
Marc

--
-----------------------------------------------------------------------------
Marc Haber | "I don't trust Computers. They | Mailadresse im Header
Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834
Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190

2008-12-10 13:43:20

by Marc Haber

[permalink] [raw]
Subject: Re: pl2303 - pl2303_open - failed submitting interrupt urb, error -28

On Tue, Dec 09, 2008 at 09:11:20PM +0100, Marc Haber wrote:
> On Fri, Dec 05, 2008 at 11:03:41AM -0500, Alan Stern wrote:
> > Yes it is. You can force port P of the EHCI controller on bus B to run
> > at low/full speed by doing:
> >
> > echo P >/sys/class/usb_host/usb_hostB/companion
> >
> > To allow port P to run at high speed again, use the same command but
> > write -P instead of P.
>
> I will try that and report back.

Works fine, thanks!

Greetings
Marc

--
-----------------------------------------------------------------------------
Marc Haber | "I don't trust Computers. They | Mailadresse im Header
Mannheim, Germany | lose things." Winona Ryder | Fon: *49 621 72739834
Nordisch by Nature | How to make an American Quilt | Fax: *49 3221 2323190