diff options
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r-- | kernel/power/suspend.c | 8 |
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) | |||
197 | int suspend_devices_and_enter(suspend_state_t state) | 198 | int 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: |