[PATCH] usb ehci_iaa_watchdog fix

Mark Lord
2008-04-02T16:20:27Z

David Brownell wrote:
>> Also, check out the thread on LKML started by Tino Keitel. He had
>> similar problems and found that reverting commit
>> e82cc1288fa57857c6af8c57f3d07096d4bcd9d9 fixed them.
>
> And try the change I suggested there: taking the
> HC_IS_RUNNING test out of ehci_iaa_watchdog().
..

Yup, that does indeed cure it.
Here's a patch, in case you didn't already generate one:

Signed-off-by: Mark Lord <mlord@pobox.com>

--- rc8/drivers/usb/host/ehci-hcd.c 2008-03-11 11:18:40.000000000 -0400
+++ linux/drivers/usb/host/ehci-hcd.c 2008-04-02 12:16:40.000000000 -0400
@@ -289,9 +289,7 @@
* (a) SMP races against real IAA firing and retriggering, and
* (b) clean HC shutdown, when IAA watchdog was pending.
*/
- if (ehci->reclaim
- && !timer_pending(&ehci->iaa_watchdog)
- && HC_IS_RUNNING(ehci_to_hcd(ehci)->state)) {
+ if (ehci->reclaim && !timer_pending(&ehci->iaa_watchdog)) {
u32 cmd, status;

/* If we get here, IAA is *REALLY* late. It's barely