Re: [PATCH] usb ehci_iaa_watchdog fix

David Brownell
2008-04-02T16:57:19Z

On Wednesday 02 April 2008, Mark Lord wrote:
> 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.

Given your immediately-preceding experience, I'll wait for a
bit more confirmation ... but this seems like a candidate to
merge while 2.6.25 still hasn't frozen!!

> Here's a patch, in case you didn't already generate one:

I hadn't; thanks.

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