]> rtime.felk.cvut.cz Git - zynq/linux.git/blobdiff - kernel/power/suspend.c
Apply preempt_rt patch-4.9-rt1.patch.xz
[zynq/linux.git] / kernel / power / suspend.c
index 6ccb08f57fcb431d26b266163f53b321b2782bd8..c8cbb5ed2fe3deae7b1084443fa8447950d7591c 100644 (file)
@@ -369,6 +369,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
        arch_suspend_disable_irqs();
        BUG_ON(!irqs_disabled());
 
+       system_state = SYSTEM_SUSPEND;
+
        error = syscore_suspend();
        if (!error) {
                *wakeup = pm_wakeup_pending();
@@ -385,6 +387,8 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
                syscore_resume();
        }
 
+       system_state = SYSTEM_RUNNING;
+
        arch_suspend_enable_irqs();
        BUG_ON(irqs_disabled());
 
@@ -527,6 +531,8 @@ static int enter_state(suspend_state_t state)
        return error;
 }
 
+bool pm_in_action;
+
 /**
  * pm_suspend - Externally visible function for suspending the system.
  * @state: System sleep state to enter.
@@ -541,6 +547,8 @@ int pm_suspend(suspend_state_t state)
        if (state <= PM_SUSPEND_ON || state >= PM_SUSPEND_MAX)
                return -EINVAL;
 
+       pm_in_action = true;
+
        error = enter_state(state);
        if (error) {
                suspend_stats.fail++;
@@ -548,6 +556,7 @@ int pm_suspend(suspend_state_t state)
        } else {
                suspend_stats.success++;
        }
+       pm_in_action = false;
        return error;
 }
 EXPORT_SYMBOL(pm_suspend);