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.


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

Reply via email to