aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/suspend.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r--kernel/power/suspend.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
index 7335952ee473..031d5e3a6197 100644
--- a/kernel/power/suspend.c
+++ b/kernel/power/suspend.c
@@ -22,6 +22,7 @@
22#include <linux/mm.h> 22#include <linux/mm.h>
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/suspend.h> 24#include <linux/suspend.h>
25#include <trace/events/power.h>
25 26
26#include "power.h" 27#include "power.h"
27 28
@@ -197,18 +198,18 @@ static int suspend_enter(suspend_state_t state)
197int suspend_devices_and_enter(suspend_state_t state) 198int suspend_devices_and_enter(suspend_state_t state)
198{ 199{
199 int error; 200 int error;
200 gfp_t saved_mask;
201 201
202 if (!suspend_ops) 202 if (!suspend_ops)
203 return -ENOSYS; 203 return -ENOSYS;
204 204
205 trace_machine_suspend(state);
205 if (suspend_ops->begin) { 206 if (suspend_ops->begin) {
206 error = suspend_ops->begin(state); 207 error = suspend_ops->begin(state);
207 if (error) 208 if (error)
208 goto Close; 209 goto Close;
209 } 210 }
210 suspend_console(); 211 suspend_console();
211 saved_mask = clear_gfp_allowed_mask(GFP_IOFS); 212 pm_restrict_gfp_mask();
212 suspend_test_start(); 213 suspend_test_start();
213 error = dpm_suspend_start(PMSG_SUSPEND); 214 error = dpm_suspend_start(PMSG_SUSPEND);
214 if (error) { 215 if (error) {
@@ -225,11 +226,12 @@ int suspend_devices_and_enter(suspend_state_t state)
225 suspend_test_start(); 226 suspend_test_start();
226 dpm_resume_end(PMSG_RESUME); 227 dpm_resume_end(PMSG_RESUME);
227 suspend_test_finish("resume devices"); 228 suspend_test_finish("resume devices");
228 set_gfp_allowed_mask(saved_mask); 229 pm_restore_gfp_mask();
229 resume_console(); 230 resume_console();
230 Close: 231 Close:
231 if (suspend_ops->end) 232 if (suspend_ops->end)
232 suspend_ops->end(); 233 suspend_ops->end();
234 trace_machine_suspend(PWR_EVENT_EXIT);
233 return error; 235 return error;
234 236
235 Recover_platform: 237 Recover_platform: