Bernd Porr wrote:
Dave,

here's a patch which resolves the problem during shutdown.

The sum "now_uframe+mod-1" obviously can get greater than mod. If this is the case the if-clause "now_uframe==clock" results always into false.
Consequently the loop for(;;) loops forever.

That's almost exactly the change I was going to send around ... good to know that was indeed the problem! My patch touches a few other things, including something that might have caused that "no interrupt transfer queueing" bug you saw.

- Dave




/Bernd



------------------------------------------------------------------------


--- ehci-sched.c.orig Sat Jan 31 17:51:57 2004
+++ ehci-sched.c Sat Jan 31 17:53:49 2004
@@ -1246,7 +1246,7 @@
if (HCD_IS_RUNNING (ehci->hcd.state))
clock = readl (&ehci->regs->frame_index) % mod;
else
- clock = now_uframe + mod - 1;
+ clock = (now_uframe + mod - 1) % mod;
for (;;) {
union ehci_shadow q, *q_p;




-------------------------------------------------------
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

Reply via email to