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
