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