Re: Regression: USB is nfg after suspend/resume(RAM) cycle on Intel chipset

Alan Stern
2007-05-29T20:12:22Z

On Tue, 29 May 2007, Mark Lord wrote:

> >> Okay, just to make it trivial,
> >> I've narrowed it down to only this commit from Alan Stern:
> >>
> >> 7ed92f1a149dddc3cb537ccd7441e98adac12c3e USB: make the autosuspend workqueue thread freezable
> >
> > I'm a little surprised; I would have expected the other patch to be the
> > one responsible. Are you sure you got the right one?
>
> Absolutely, 100% sure.

In fact, looking back at things I suspect the real culprit was

6b157c9bf3bace6eeb4a973da63923ef24995cce USB: separate autosuspend from
external suspend

The patch you identified merely makes the problem much more likely to
occur. It causes both threads involved in the deadlock to be frozen
instead of just one of them, so when things get unfrozen the race is
poised to occur.

> I didn't re-break the kernel to do the alt-sysrq thing,
> but I did reapply the b0rken commit plus your new patch (below).

No need, it seems pretty clear that this was the problem.

> So far, so good with that combination, thanks.

You're welcome. I'll send the patch on up the line...

Greg, the patch I sent Mark is for 2.6.22-rc3. It's different from the
corresponding patch for the USB development tree because of intervening
changes. How would you like to handle this? Should I send you both
versions of the patch?

Alan Stern