On Fri, 6 Jul 2007, Benjamin Herrenschmidt wrote: > What you propose is basically a slightly over-simplistic version of what > I think (and Paulus think) should be done. We do need to do it via > driver callbacks down the tree since only drivers can know how to deal > with their DMA etc... and ordering need to be respected, but that's > basically it. > > And guess what ? It's what we do on powerbooks, and it works fine, > without a freezer :-) I wish you'd stop saying that. Have you ever done any serious testing? Here's something to try: Add a time delay to the end of hub_suspend in drivers/usb/core/hub.c, so you can provoke a race manually. Then while one of your root hubs is being suspended and the system is waiting in that delay, either plug in a new USB device to that hub or unplug an existing device. Be sure that CONFIG_USB_DEBUG is on so that we can figure out what happened after the fact. Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm