On Fri, 6 Jun 2003, Duncan Sands wrote:

> Here's the schedule.  It finishes like this:
> 
>     [dee6e2d0] link (1ee6e212) element (18f33a50)
>       0: [d8f33a50] link (1ee6e302) e3 SPD IOC Active Length=0 MaxLen=34 DT1 EndPt=7 
> Dev=2, PID=e1(OUT) (buf=193cd000)
> --  Queued QH's:
>     [dee6e300] link (1ee6e212) element (18f33a80)
>       0: [d8f33a80] link (00000001) e3 SPD IOC Active Length=0 MaxLen=34 DT0 EndPt=7 
> Dev=2, PID=e1(OUT) (buf=193e8000)
> 
> Note how the links 1ee6e212 (i.e. link to QH at ?ee6e210) seem to be to a 
> non-existant QH.
> It looks to me like these urbs have completed but haven't been retired correctly.  
> Comments?

You must have had debug set to 1, because your listing did not include the 
skeleton QH's.  That's what's confusing you; the QH at dee6e210 is the 
Terminating QH.

Your listing showed 5 URBs linked for device 2, not just 2 URBs:

        ep 1-IN
        ep 7-IN
        ep 7-IN
        ep 7-OUT
        ep 7-OUT

The only one executed by the HC is the first, and it's still waiting 
(marked with a NAK).  The first TD for the second URB was not touched by 
the HC.  Maybe that's where the problem lies?  Although it looks perfectly 
okay to me.

Is it possible that a reserved bit was not set to 0?  That wouldn't show 
up in the debugging output.  (Don't ask me how it could have happened.)

It might be worthwhile examining a dump made immediately after you queue
the problem-causing URB.  Comparing that with the values after the HC has 
halted might possibly (?) point to the source of the error.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by:  Etnus, makers of TotalView, The best
thread debugger on the planet. Designed with thread debugging features
you've never dreamed of, try TotalView 6 free at www.etnus.com.
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to