Some further support below.
> 
> 
> As I understand it, the HC will not do any queue processing while
HeadP
> and TailP are equal (which is the case here; they are both pointing to
> dummy). This explains why nothing is happening - the HC will never do
> anything more with this endpoint because it doesn't know that the HCD
has
> added anything to the queue.
> 
> To enqueue a new TD, the HCD fills the old dummy TD and appends a new
TD
> to the end of the list. It should then update TailP. It *looks* like
the
> HCD appended a TD to the queue next but didn't update ed->dummy or
TailP.


Further support (I dumped the 'dummy' td before freeing it). This is a
new trace so the addresses won't match the last trace.

kernel: ohci_hcd 0000:00:13.0: leak ed c3e8e680 (#82) state 0 (has tds)
kernel: ohci_hcd 0000:00:13.0: ed->dummy td c3e8d8c0; urb 00000000 index
0; hw next td 03e8d8c0
ohci_hcd 0000:00:13.0:      info 00000000 CC=0 (CARRY) DI=0 SETUP 
ohci_hcd 0000:00:13.0:      cbp 00000000 be 00000000 (len 0)
ohci_hcd 0000:00:13.0: free ed->dummy: td c3e8d8c0

ed->dummy has a non-null next pointer! I don't believe that should ever
be the case.

Mike

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
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