diff options
| -rw-r--r-- | drivers/base/power/main.c | 10 | 
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c index b462c0e341c..e0fb5b0435a 100644 --- a/drivers/base/power/main.c +++ b/drivers/base/power/main.c @@ -889,6 +889,11 @@ static int dpm_suspend_noirq(pm_message_t state)  		if (!list_empty(&dev->power.entry))  			list_move(&dev->power.entry, &dpm_noirq_list);  		put_device(dev); + +		if (pm_wakeup_pending()) { +			error = -EBUSY; +			break; +		}  	}  	mutex_unlock(&dpm_list_mtx);  	if (error) @@ -962,6 +967,11 @@ static int dpm_suspend_late(pm_message_t state)  		if (!list_empty(&dev->power.entry))  			list_move(&dev->power.entry, &dpm_late_early_list);  		put_device(dev); + +		if (pm_wakeup_pending()) { +			error = -EBUSY; +			break; +		}  	}  	mutex_unlock(&dpm_list_mtx);  	if (error)  |