I don't see how my patch could cause a transfer to return an
actual_length of -4.

If it is my patch causing this problem, I suspect it would be because
the nVidia EHCI controller handles the "inactivate" bit in an unexpected
(and probably out of spec) way--I was able to test with Broadcom &
Intel, but I didn't have an nVidia EHCI controller to test on.  I guess
it's possible that, when the "inactivate" bit is set, the nVidia EHCI
controller sets the status to make it look like that transaction is
finished, and maybe the inactivate bit was set early enough that
actual_length never got initialized to anything and the -4 was just
leftover in that memory space...?  I suggest this without looking at the
code--I don't know if that's actually possible.

I'll try to locate a box with an nVidia EHCI controller today and see if
I can reproduce this.

Stuart
 

-----Original Message-----
From: Alan Stern [mailto:[EMAIL PROTECTED] 
Sent: Tuesday, July 24, 2007 5:07 PM
To: Pete Zaitcev
Cc: Hayes, Stuart; USB development list
Subject: Re: Bug in EHCI split-interrupt handling

On Tue, 24 Jul 2007, Pete Zaitcev wrote:

> On Tue, 24 Jul 2007 15:44:23 -0400 (EDT), Alan Stern
<[EMAIL PROTECTED]> wrote:
> 
> >     http://bugzilla.kernel.org/show_bug.cgi?id=8535
> > 
> > contains logs suggestive of problems with EHCI split-interrupt 
> > handling.  See in particular comment #33; the usbmon log in comment 
> > #32 contains a line in which a low-speed interrupt URB returns with 
> > status equal to 0 and actual_length set to -4.
> 
> Nicolas sent me a trace out of band which had a similar entry:
> ffff8100057f6100 1467276128 C Ii:2:004:1 0:8 -4
> 
> > Obviously this should never happen.  Can anybody offer tips on where

> > to go searching through the driver code for a solution?
> 
> I'm going to double-check that usbmon is not deceiving you. It sure 
> looks totally bogus. Maybe I mixed up fields in a union somewhere.

Maybe.  Stuart Hayes has just added comment #42 in which he suggests
this problem may be caused by the cpufreq adjustment patch he wrote.  
Stuart, could your patch cause a 4-byte low-speed interrupt transfer to
return an actual_length of -4?

Alan Stern

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to