diff options
Diffstat (limited to 'kernel/power/process.c')
| -rw-r--r-- | kernel/power/process.c | 8 | 
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c index e50b4c1b2a0..d6d2a10320e 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c @@ -64,6 +64,12 @@ static int try_to_freeze_tasks(bool sig_only)  			 * perturb a task in TASK_STOPPED or TASK_TRACED.  			 * It is "frozen enough".  If the task does wake  			 * up, it will immediately call try_to_freeze. +			 * +			 * Because freeze_task() goes through p's +			 * scheduler lock after setting TIF_FREEZE, it's +			 * guaranteed that either we see TASK_RUNNING or +			 * try_to_stop() after schedule() in ptrace/signal +			 * stop sees TIF_FREEZE.  			 */  			if (!task_is_stopped_or_traced(p) &&  			    !freezer_should_skip(p)) @@ -79,7 +85,7 @@ static int try_to_freeze_tasks(bool sig_only)  		if (!todo || time_after(jiffies, end_time))  			break; -		if (!pm_check_wakeup_events()) { +		if (pm_wakeup_pending()) {  			wakeup = true;  			break;  		}  |