On Tue, Dec 28, 2010 at 10:04 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote: > On Tuesday, December 28, 2010, Ohad Ben-Cohen wrote: >> On Sun, Dec 26, 2010 at 8:37 PM, Rafael J. Wysocki <rjw@xxxxxxx> wrote: >> > So, it only happens during asynchronous suspend? In other words, if suspend >> > is synchronous, everything should be fine, right? >> >> Not necessarily. > > So it's not a race after all, is it? There are several scenarios to the same problem.. In one of them, we were racing against an event that caused a suspend handler of an entirely unrelated device to fail. I'm trying very hard not to overload this thread with irrelevant details.. but anyway this forked discussion is a bit moot IMHO > Second, what you'd really want to do (I guess) is: > > pm_runtime_put_noidle(device); > device->bus->pm->runtime_suspend(device); Yes, our workaround is somewhere in these lines. We're using it regardless of the system state (runtime or suspending), and frankly, we're happy with it, just like I said in: http://www.spinics.net/linux/lists/linux-mmc/msg05052.html I still call it a workaround though... _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm