aboutsummaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-10-22 22:47:32 +0200
committerMoyster <oysterized@gmail.com>2019-05-02 18:33:07 +0200
commit47069d0e65559f4421ec90bc5fe1be1b7a45cd51 (patch)
tree9dc92d0290800881cf9a9e82e64935831d47881d /kernel
parent3a957735404718a8e010737c1c0bb3025fdcfb4d (diff)
PM / freezer: Clean up code after recent fixes
Clean up the code in process.c after recent changes to get rid of unnecessary labels and goto statements. Change-Id: I21245b4d20c44e957d9b61a2db6ac045bd21bad9 Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/power/process.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c
index 8ea711f0d..152fe133a 100644
--- a/kernel/power/process.c
+++ b/kernel/power/process.c
@@ -118,25 +118,27 @@ static int try_to_freeze_tasks(bool user_only)
return todo ? -EBUSY : 0;
}
+static bool __check_frozen_processes(void)
+{
+ struct task_struct *g, *p;
+
+ for_each_process_thread(g, p)
+ if (p != current && !freezer_should_skip(p) && !frozen(p))
+ return false;
+
+ return true;
+}
+
/*
* Returns true if all freezable tasks (except for current) are frozen already
*/
static bool check_frozen_processes(void)
{
- struct task_struct *g, *p;
- bool ret = true;
+ bool ret;
read_lock(&tasklist_lock);
- for_each_process_thread(g, p) {
- if (p != current && !freezer_should_skip(p) &&
- !frozen(p)) {
- ret = false;
- goto done;
- }
- }
-done:
+ ret = __check_frozen_processes();
read_unlock(&tasklist_lock);
-
return ret;
}
@@ -177,15 +179,14 @@ int freeze_processes(void)
* on the way out so we have to double check for race.
*/
if (oom_kills_count() != oom_kills_saved &&
- !check_frozen_processes()) {
+ !check_frozen_processes()) {
__usermodehelper_set_disable_depth(UMH_ENABLED);
printk("OOM in progress.");
error = -EBUSY;
- goto done;
+ } else {
+ printk("done.");
}
- printk("done.");
}
-done:
printk("\n");
BUG_ON(in_atomic());