Loading kernel/power/process.c +16 −15 Original line number Diff line number Diff line Loading @@ -108,25 +108,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; } Loading Loading @@ -171,11 +173,10 @@ int freeze_processes(void) __usermodehelper_set_disable_depth(UMH_ENABLED); printk("OOM in progress."); error = -EBUSY; goto done; } } else { printk("done."); } done: } printk("\n"); BUG_ON(in_atomic()); Loading Loading
kernel/power/process.c +16 −15 Original line number Diff line number Diff line Loading @@ -108,25 +108,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; } Loading Loading @@ -171,11 +173,10 @@ int freeze_processes(void) __usermodehelper_set_disable_depth(UMH_ENABLED); printk("OOM in progress."); error = -EBUSY; goto done; } } else { printk("done."); } done: } printk("\n"); BUG_ON(in_atomic()); Loading