diff options
Diffstat (limited to 'kernel/power/suspend.c')
-rw-r--r-- | kernel/power/suspend.c | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c index 4914358a0543..88e5c967370d 100644 --- a/kernel/power/suspend.c +++ b/kernel/power/suspend.c | |||
@@ -316,12 +316,18 @@ static int enter_state(suspend_state_t state) | |||
316 | */ | 316 | */ |
317 | int pm_suspend(suspend_state_t state) | 317 | int pm_suspend(suspend_state_t state) |
318 | { | 318 | { |
319 | int ret; | 319 | int error; |
320 | if (state > PM_SUSPEND_ON && state < PM_SUSPEND_MAX) { | 320 | |
321 | ret = enter_state(state); | 321 | if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX) |
322 | suspend_stats_update(ret); | 322 | return -EINVAL; |
323 | return ret; | 323 | |
324 | error = enter_state(state); | ||
325 | if (error) { | ||
326 | suspend_stats.fail++; | ||
327 | dpm_save_failed_errno(error); | ||
328 | } else { | ||
329 | suspend_stats.success++; | ||
324 | } | 330 | } |
325 | return -EINVAL; | 331 | return error; |
326 | } | 332 | } |
327 | EXPORT_SYMBOL(pm_suspend); | 333 | EXPORT_SYMBOL(pm_suspend); |