On Thu, 2010-03-04 at 10:09 -0800, Sarah Sharp wrote: > On Thu, Mar 04, 2010 at 11:17:18AM +0800, Andiry Xu wrote: > > On Wed, 2010-03-03 at 09:48 -0800, Sarah Sharp wrote: > > > On Tue, Mar 02, 2010 at 06:49:03PM +0800, Libin Yang wrote: > > > > >From a37170e23f1a0dc1fc88ceee305ede6e90de6659 Mon Sep 17 00:00:00 2001 > > > > From: Andiry Xu <andiry.xu@xxxxxxx> > > > > Date: Tue, 2 Mar 2010 17:15:36 +0800 > > > > Subject: [PATCH 7/7] xHCI: re-initialize cmd_completion > > > > > > > > When a signal interrupts isoc transfer, the cmd_completion used in > > > > xhci_configure_endpoint() is not re-initialized and the > > > > wait_for_completion_interruptible_timeout() will return failure. > > > > Initialize the cmd_completion in xhci_configure_endpoint(). > > > > > > While I agree with the contents of this patch (thanks for catching > > > this!), I'm a little puzzled by the description. I didn't see you issue > > > a configure endpoint command as part of an isochronous transfer. Am I > > > missing something, or did you forget part of the patchset? > > > > Yes, I do not issue configure endpoint command as part of isoc transfer. > > The command is issued from upper layer, as part of the alt-setting > > re-set. > > > > When isoc device start/stop isoc transfer, its alt-setting will change. > > usb_hcd_alloc_bandwidth() will be called, then xhci_check_bandwidth() > > and finally xhci_configure_endpoint() called. > > So there's a driver that switches alternate settings, issues an > isochronous transfer, and then switches back? Does it do this for every > isochronous transfer? That seems very inefficient. Which driver were > you testing with? I find the issue with a logitech USB1.1 speaker with snd_usb_audio. And I do notice a USB1.1 webcam and USB2.0 tv-tuner has this alt-setting switch. > > Cannot say it's a isoc-specific issue, but I reproduce the issue when > > ctrl-c in isoc transfer, so I submit it with isoc patchset. > > Ok, how about this description instead: > > When a signal interrupts a Configure Endpoint command, the > cmd_completion used in xhci_configure_endpoint() is not re-initialized > and the wait_for_completion_interruptible_timeout() will return > failure. Initialize the cmd_completion in xhci_configure_endpoint(). OK. -- 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