On Wed, Aug 12, 2009 at 10:04:36AM -0400, Alan Stern wrote: > On Tue, 11 Aug 2009, Sarah Sharp wrote: > > > I looked at making usb_ep0_reinit() call hcd->drop_endpoint(), > > hcd->usb_add_endpoint(), and hcd->check_bandwidth() for control endpoint > > 0. usb_ep0_reinit() is called too many times, for my purposes. It's > > called when the USB device address changes (possibly several times if > > the enumeration sequence fails). The xHCI driver doesn't care about > > address changes, because it's already involved through > > hcd->address_device(). > > > > Also, the return value of usb_ep0_reinit() would have to change if it > > called down to the xHCI bandwidth functions. The xHCI driver may run > > out of memory when it allocates structures for the evaluate context > > command. That means that new parts of the enumeration sequence may > > fail. Also, I'm unlikely to get your suggested patch included in > > 2.6.31, since it changes the signature of an exported function. > > > > If I change the max packet size when the enumeration sequence submits > > the next control transfer instead, that part of the enumeration sequence > > is already coded to look for out of memory errors, and the change > > doesn't touch any exported functions. > > > > In short, I'm still leaning towards my original patch. :) > > That's fine. You're the maintainer and the choice is up to you. I > just wanted to make sure you were aware of the alternative. Thanks for the comments and alternatives, they are appreciated. Sarah -- 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