diff options
Diffstat (limited to 'kernel/power/process.c')
| -rw-r--r-- | kernel/power/process.c | 25 | 
1 files changed, 10 insertions, 15 deletions
| diff --git a/kernel/power/process.c b/kernel/power/process.c index ddd9988327fe..6c1c7e566d35 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c @@ -27,6 +27,8 @@ unsigned int __read_mostly freeze_timeout_msecs = 20 * MSEC_PER_SEC;  static int try_to_freeze_tasks(bool user_only)  { +	const char *what = user_only ? "user space processes" : +					"remaining freezable tasks";  	struct task_struct *g, *p;  	unsigned long end_time;  	unsigned int todo; @@ -36,6 +38,8 @@ static int try_to_freeze_tasks(bool user_only)  	bool wakeup = false;  	int sleep_usecs = USEC_PER_MSEC; +	pr_info("Freezing %s\n", what); +  	start = ktime_get_boottime();  	end_time = jiffies + msecs_to_jiffies(freeze_timeout_msecs); @@ -82,9 +86,8 @@ static int try_to_freeze_tasks(bool user_only)  	elapsed_msecs = ktime_to_ms(elapsed);  	if (todo) { -		pr_cont("\n"); -		pr_err("Freezing of tasks %s after %d.%03d seconds " -		       "(%d tasks refusing to freeze, wq_busy=%d):\n", +		pr_err("Freezing %s %s after %d.%03d seconds " +		       "(%d tasks refusing to freeze, wq_busy=%d):\n", what,  		       wakeup ? "aborted" : "failed",  		       elapsed_msecs / 1000, elapsed_msecs % 1000,  		       todo - wq_busy, wq_busy); @@ -101,8 +104,8 @@ static int try_to_freeze_tasks(bool user_only)  			read_unlock(&tasklist_lock);  		}  	} else { -		pr_cont("(elapsed %d.%03d seconds) ", elapsed_msecs / 1000, -			elapsed_msecs % 1000); +		pr_info("Freezing %s completed (elapsed %d.%03d seconds)\n", +			what, elapsed_msecs / 1000, elapsed_msecs % 1000);  	}  	return todo ? -EBUSY : 0; @@ -130,14 +133,11 @@ int freeze_processes(void)  		static_branch_inc(&freezer_active);  	pm_wakeup_clear(0); -	pr_info("Freezing user space processes ... ");  	pm_freezing = true;  	error = try_to_freeze_tasks(true); -	if (!error) { +	if (!error)  		__usermodehelper_set_disable_depth(UMH_DISABLED); -		pr_cont("done."); -	} -	pr_cont("\n"); +  	BUG_ON(in_atomic());  	/* @@ -166,14 +166,9 @@ int freeze_kernel_threads(void)  {  	int error; -	pr_info("Freezing remaining freezable tasks ... "); -  	pm_nosig_freezing = true;  	error = try_to_freeze_tasks(false); -	if (!error) -		pr_cont("done."); -	pr_cont("\n");  	BUG_ON(in_atomic());  	if (error) |