On Fri, 3 Dec 2010, Rafael J. Wysocki wrote: > The devices will be suspended and the suspend will progress until it's > finally aborted before putting the system into the sleep state. But I agree > it's better to check pm_wakeup_pending() in async_suspend() too, > so I think we can simply put it into __device_suspend() instead, like in the > patch below. > > Thanks, > Rafael > > --- > From: Rafael J. Wysocki <rjw@xxxxxxx> > Subject: PM: Use pm_wakeup_pending() in __device_suspend() > > Before starting to suspend a device in __device_suspend() check if > there's a request to abort the power transition and return -EBUSY > in that case. > > Signed-off-by: Rafael J. Wysocki <rjw@xxxxxxx> > --- > drivers/base/power/main.c | 5 +++++ > 1 file changed, 5 insertions(+) > > Index: linux-2.6/drivers/base/power/main.c > =================================================================== > --- linux-2.6.orig/drivers/base/power/main.c > +++ linux-2.6/drivers/base/power/main.c > @@ -877,6 +877,11 @@ static int __device_suspend(struct devic > if (async_error) > goto End; > > + if (pm_wakeup_pending()) { > + async_error = -EBUSY; > + goto End; > + } > + > if (dev->class) { > if (dev->class->pm) { > pm_dev_dbg(dev, state, "class "); > Looks good. Alan Stern _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm