aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/hibernate.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/power/hibernate.c')
-rw-r--r--kernel/power/hibernate.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 5454cc639a8d..9c85c7822383 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -287,6 +287,8 @@ static int create_image(int platform_mode)
287 287
288 local_irq_disable(); 288 local_irq_disable();
289 289
290 system_state = SYSTEM_SUSPEND;
291
290 error = syscore_suspend(); 292 error = syscore_suspend();
291 if (error) { 293 if (error) {
292 pr_err("Some system devices failed to power down, aborting hibernation\n"); 294 pr_err("Some system devices failed to power down, aborting hibernation\n");
@@ -317,6 +319,7 @@ static int create_image(int platform_mode)
317 syscore_resume(); 319 syscore_resume();
318 320
319 Enable_irqs: 321 Enable_irqs:
322 system_state = SYSTEM_RUNNING;
320 local_irq_enable(); 323 local_irq_enable();
321 324
322 Enable_cpus: 325 Enable_cpus:
@@ -445,6 +448,7 @@ static int resume_target_kernel(bool platform_mode)
445 goto Enable_cpus; 448 goto Enable_cpus;
446 449
447 local_irq_disable(); 450 local_irq_disable();
451 system_state = SYSTEM_SUSPEND;
448 452
449 error = syscore_suspend(); 453 error = syscore_suspend();
450 if (error) 454 if (error)
@@ -478,6 +482,7 @@ static int resume_target_kernel(bool platform_mode)
478 syscore_resume(); 482 syscore_resume();
479 483
480 Enable_irqs: 484 Enable_irqs:
485 system_state = SYSTEM_RUNNING;
481 local_irq_enable(); 486 local_irq_enable();
482 487
483 Enable_cpus: 488 Enable_cpus:
@@ -563,6 +568,7 @@ int hibernation_platform_enter(void)
563 goto Enable_cpus; 568 goto Enable_cpus;
564 569
565 local_irq_disable(); 570 local_irq_disable();
571 system_state = SYSTEM_SUSPEND;
566 syscore_suspend(); 572 syscore_suspend();
567 if (pm_wakeup_pending()) { 573 if (pm_wakeup_pending()) {
568 error = -EAGAIN; 574 error = -EAGAIN;
@@ -575,6 +581,7 @@ int hibernation_platform_enter(void)
575 581
576 Power_up: 582 Power_up:
577 syscore_resume(); 583 syscore_resume();
584 system_state = SYSTEM_RUNNING;
578 local_irq_enable(); 585 local_irq_enable();
579 586
580 Enable_cpus: 587 Enable_cpus: