On Fri, Feb 11, 2011 at 05:54:27PM -0500, Alan Stern wrote: > On Fri, 11 Feb 2011, Sarah Sharp wrote: > > > On Wed, Feb 02, 2011 at 01:59:33PM -0500, Alan Stern wrote: > > > The USB core keeps track of pending resume requests for root hubs, in > > > order to resolve races between wakeup requests and suspends. However > > > the code that does this is subject to another race (between wakeup > > > requests and resumes) because the WAKEUP_PENDING flag is cleared > > > before the resume occurs, leaving a window in which another wakeup > > > request might arrive. > > > > > > This patch (as1447) fixes the problem by clearing the WAKEUP_PENDING > > > flag after the resume instead of before it. > > > > I wonder if this was the race condition I was seeing with the USB 3.0 > > hubs/split roothub patches. Alan, could the dmesg I posted on Jan. 14 > > (subject: Issue with hub reset-resume under xHCI) be explained by this > > bug? > > The only way these issues could be related would be if your host > controller was autosuspending. The race in this patch occurs when the > host controller is resumed and then the root hub generates a wakeup IRQ > just before _it_ gets resumed. Furthermore, the damage caused by the > race shows up when it causes the next host controller suspend to fail > -- it doesn't mess up anything during the resume sequence. So I'd say > these are unrelated. > > Have you made any progress on that hub reset-resume bug since the last > message in the email thread (Jan. 18)? No, I just got back from vacation on Monday, and I've had email diarrhea and meeting rashes since then. ;) I haven't had a chance to look at that since I got back. It was funny, because I could only reproduce the error on one desktop box. I could not reproduce it on my laptop, running the same code, which is why I wondered if it was a race condition. Sarah Sharp -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html