From: Rafael J. Wysocki <rjw@xxxxxxx> 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 @@ -935,6 +935,11 @@ static void async_suspend(void *data, as static int device_suspend(struct device *dev) { + if (pm_wakeup_pending()) { + async_error = -EBUSY; + return async_error; + } + INIT_COMPLETION(dev->power.completion); if (pm_async_enabled && dev->power.async_suspend) { _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm