On Mon, 25 Feb 2008, Pierre Ossman wrote: > > What do you think of the patch attached to comment #40 in the Bugzilla > > entry? > > > > Looks ok. As long as those two synchronization points are guaranteed, > then I'm happy. Maybe a better approach would be to leave the workqueue unfreezable, and keep cancel_delayed_work_sync() in mmc_suspend_host(). It would then be necessary to add a test to verify, if there is a card attached, that the card is indeed suspended. After all, it's possible that the cancel_delayed_work_sync() ended up waiting for a job already running on the workqueue to register a new card! (The same would be true even with flush_scheduled_work.) Also, as a bit of defensive programming, it might be a good idea to add a "suspended" flag to the mmc_host structure. If mmc_rescan() sees that the flag is set then it should return immediately. This would protect against host drivers that aren't careful to disable detect IRQs before calling mmc_suspend_host(). Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm