patching file drivers/usb/host/ehci-hub.c Hunk #1 FAILED at 113. 1 out of 1 hunk FAILED -- saving rejects to file drivers/usb/host/ehci-hub.c.rej
Clearly you weren't applying against a current enough BK tree. You probably don't care about that one-liner though, it just removes a FIXME comment.
Were you able to test that "interrupt transfers don't queue" case?
However, the hang during shutdown is still there.
I had a look at the code:
if ((frame == (clock >> 3)) && HCD_IS_RUNNING (ehci->hcd.state))
That "&& HCD_IS_RUNNING()" clause should probably vanish; it'd only affect the last few iterations in an abort/shutdown, by making them a bit slower than they might otherwise be.
uframes = now_uframe & 0x07; else { /* safe to scan the whole frame at once */ now_uframe |= 0x07; uframes = 8; }
this results in steps of frames in the case if the HC is not running.
Which would be fine, although it'll happen in most frames because of the frame comparison, except that:
The break condition compares still uframes.
if (now_uframe == clock) { unsigned now;
if (!HCD_IS_RUNNING (ehci->hcd.state)) break;
If "clock" is not at a frame boundary "now_uframe == clock" always evaluates to false. Thus, it loops forever.
That it would. How are you forcing the controller into that particular rude shutdown path?
Can we change it to:
if (now_uframe >= clock) {
Unfortunately no; consider an HC stopping with clock at uframe 2 where the last uframe scanned was a few msec ago at 253. That'd prevent the loop from operating correctly.
Better would be to just remove the HCD_IS_RUNNING test I highlighted, which will mean that aborting a running controller takes a smidgeon longer than it should ... in just the last frame. Try that and see how it behaves.
- Dave
------------------------------------------------------- The SF.Net email is sponsored by EclipseCon 2004 Premiere Conference on Open Tools Development and Integration See the breadth of Eclipse activity. February 3-5 in Anaheim, CA. http://www.eclipsecon.org/osdn _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel
