aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/process.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/power/process.c')
-rw-r--r--kernel/power/process.c20
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
173static void thaw_tasks(bool nosig_only) 173void 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
193void 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}