Re: usb_kill_urb deadlock with multiple hubs in series (2.6.29)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, 21 Nov 2009, Simon Arlott wrote:

> I've caused a deadlock with multiple bus powered USB hubs (mostly
> extension cables) connected at once.

Are they connected together (i.e., one bus-powered hub plugged into
another) or separately (each bus-powered hub plugged into a
self-powered hub or into the host)?

In USB you are not allowed to plug one bus-powered hub into another.  
(The voltage drop is too great.)  Or more accurately, if you do it the
system will warn you and will refuse to configure the second hub.

Of course, there are a lot of crappy hubs out there which lie to the
host, telling it they are self-powered when they are really
bus-powered.  Then there's no way for the system to realize what's
going on and take the proper action.

> It just suddenly stopped at "usb 4-2.4.4.4: new full speed USB
> device using ohci_hcd and address 107".

If all those intermediate hubs are bus-powered, that's not at all
surprising.

> With so many hubs all the suspend/resume cycles cause numerous
> delayed reactions... if 4-2.4.4.4 is an USB hub (4 hubs in series
> connected to the host), should I be able to connect a device to it
> or have I reached the limit already?

You are allowed to have up to six links in the chain, that is, a device
plugged into five hubs (provided you don't violate the rule about no 
plugging one bus-powered hub into another).

This sort of thing is explained very clearly in the USB 2.0 
specification, freely available at www.usb.org.  It's got lots of 
interesting and useful information; you might enjoy looking through it.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux