[lkml]   [2013]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: USB autosuspend vs. URB submission
On Thu, 10 Jan 2013, Oliver Neukum wrote:

> On Thursday 10 January 2013 00:05:55 Laurent Pinchart wrote:
> > I've had a quick look at the trace posted at
> > but usbmon only shows URBs
> > that are successfully submitted. I'm not sure what useful information I could
> > get from the trace.
> The test is at the very start of usb_submit_urb()
> if (!urb || !urb->complete)
> return -EINVAL;
> if (urb->hcpriv) {
> WARN_ONCE(1, "URB %p submitted while active\n", urb);
> return -EBUSY;
> }
> usbmon will never see such URBs

Not quite -- it will see them the first time they are submitted, when
the submission succeeds.

> I suggest that for debugging you change the WARN_ONCE into a WARN and compare
> the URB pointers of usbmon and dmesg.

Good idea.

> In the long run it is probably a good idea to pass duplicated URBs to usbmon by
> a special code path.

I'd prefer to add extra information to the WARN_ONCE message. Even
though it would require the extra effort of correlating the dmesg
output with the usbmon output.

You know, it's possible that the URB really was not submitted before
but instead the urb->hcpriv field got overwritten. Of course, that
would also be a bug.

Alan Stern

 \ /
  Last update: 2013-01-10 17:01    [W:0.094 / U:0.816 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site