diff options
Diffstat (limited to 'kernel/power/process.c')
-rw-r--r-- | kernel/power/process.c | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c index 23822dc14b6c..9db048fb0d70 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c | |||
@@ -170,34 +170,28 @@ int freeze_kernel_threads(void) | |||
170 | return error; | 170 | return error; |
171 | } | 171 | } |
172 | 172 | ||
173 | static void thaw_tasks(bool nosig_only) | 173 | void thaw_processes(void) |
174 | { | 174 | { |
175 | struct task_struct *g, *p; | 175 | struct task_struct *g, *p; |
176 | 176 | ||
177 | oom_killer_enable(); | ||
178 | |||
179 | printk("Restarting tasks ... "); | ||
180 | |||
181 | thaw_workqueues(); | ||
182 | |||
177 | read_lock(&tasklist_lock); | 183 | read_lock(&tasklist_lock); |
178 | do_each_thread(g, p) { | 184 | do_each_thread(g, p) { |
179 | if (!freezable(p)) | 185 | if (!freezable(p)) |
180 | continue; | 186 | continue; |
181 | 187 | ||
182 | if (nosig_only && should_send_signal(p)) | ||
183 | continue; | ||
184 | |||
185 | if (cgroup_freezing_or_frozen(p)) | 188 | if (cgroup_freezing_or_frozen(p)) |
186 | continue; | 189 | continue; |
187 | 190 | ||
188 | __thaw_task(p); | 191 | __thaw_task(p); |
189 | } while_each_thread(g, p); | 192 | } while_each_thread(g, p); |
190 | read_unlock(&tasklist_lock); | 193 | read_unlock(&tasklist_lock); |
191 | } | ||
192 | |||
193 | void thaw_processes(void) | ||
194 | { | ||
195 | oom_killer_enable(); | ||
196 | 194 | ||
197 | printk("Restarting tasks ... "); | ||
198 | thaw_workqueues(); | ||
199 | thaw_tasks(true); | ||
200 | thaw_tasks(false); | ||
201 | schedule(); | 195 | schedule(); |
202 | printk("done.\n"); | 196 | printk("done.\n"); |
203 | } | 197 | } |