Alan Stern wrote:
> >
> > Could be the driver updated the pointers but did so at the wrong
time,
> > with the result that the controller overwrote them with older
values.
> > Or maybe just one of them was overwritten.  Would that explain your
> > observations?

It's probably nothing, but this line in ohci-q.c in td_submit_urb raised
an eyebrow:

urb_priv->ed->hwHeadP &= ~cpu_to_hc32 (ohci, ED_C);

There is a comment "resetting toggle is meaningless if the endpoint is
active" above this code. While that's true, I wouldn't expect this
operation to be atomic. What happens if the HC is updating headP during
this block? I would think the driver could potentially overwrite it with
the old value.

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