diff options
Diffstat (limited to 'kernel/power/process.c')
| -rw-r--r-- | kernel/power/process.c | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/kernel/power/process.c b/kernel/power/process.c index 0cf3a27a6c9d..addbbe5531bc 100644 --- a/kernel/power/process.c +++ b/kernel/power/process.c | |||
| @@ -135,7 +135,7 @@ static int try_to_freeze_tasks(bool sig_only) | |||
| 135 | } | 135 | } |
| 136 | 136 | ||
| 137 | /** | 137 | /** |
| 138 | * freeze_processes - tell processes to enter the refrigerator | 138 | * freeze_processes - Signal user space processes to enter the refrigerator. |
| 139 | */ | 139 | */ |
| 140 | int freeze_processes(void) | 140 | int freeze_processes(void) |
| 141 | { | 141 | { |
| @@ -143,20 +143,30 @@ int freeze_processes(void) | |||
| 143 | 143 | ||
| 144 | printk("Freezing user space processes ... "); | 144 | printk("Freezing user space processes ... "); |
| 145 | error = try_to_freeze_tasks(true); | 145 | error = try_to_freeze_tasks(true); |
| 146 | if (error) | 146 | if (!error) { |
| 147 | goto Exit; | 147 | printk("done."); |
| 148 | printk("done.\n"); | 148 | oom_killer_disable(); |
| 149 | } | ||
| 150 | printk("\n"); | ||
| 151 | BUG_ON(in_atomic()); | ||
| 152 | |||
| 153 | return error; | ||
| 154 | } | ||
| 155 | |||
| 156 | /** | ||
| 157 | * freeze_kernel_threads - Make freezable kernel threads go to the refrigerator. | ||
| 158 | */ | ||
| 159 | int freeze_kernel_threads(void) | ||
| 160 | { | ||
| 161 | int error; | ||
| 149 | 162 | ||
| 150 | printk("Freezing remaining freezable tasks ... "); | 163 | printk("Freezing remaining freezable tasks ... "); |
| 151 | error = try_to_freeze_tasks(false); | 164 | error = try_to_freeze_tasks(false); |
| 152 | if (error) | 165 | if (!error) |
| 153 | goto Exit; | 166 | printk("done."); |
| 154 | printk("done."); | ||
| 155 | 167 | ||
| 156 | oom_killer_disable(); | ||
| 157 | Exit: | ||
| 158 | BUG_ON(in_atomic()); | ||
| 159 | printk("\n"); | 168 | printk("\n"); |
| 169 | BUG_ON(in_atomic()); | ||
| 160 | 170 | ||
| 161 | return error; | 171 | return error; |
| 162 | } | 172 | } |
