Re: [PATCH RFC 7/7] xHCI: re-initialize cmd_completion

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

 



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

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

  Powered by Linux