On Wed, 19 Aug 2009, Sarah Sharp wrote: > Hmm, yes that is a problem. Ok, say that xhci_free_streams() always > guarantees that there's room on the command ring, and it retries the > command twice. Say that still fails when a driver is being unbound > during reset. usb_reset_device() can look at the number of streams > enabled for each endpoint after an unbind and do something if it's > non-zero. > > What should it do? Disable the port and deallocate the device? At that > point we're probably dealing with a busted host controller that doesn't > implement internal resource counting or bandwidth allocation properly. At that point your best course is probably to print an error message in the system log and proceed in a degraded mode (kind of like leaking memory). When the hardware's bad there's not much else to do. In fact, can't you use the un-freed streams to satisfy later allocation requests? 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