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 - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/