diff options
Diffstat (limited to 'kernel/power/hibernate.c')
| -rw-r--r-- | kernel/power/hibernate.c | 7 | 
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)  	local_irq_disable(); +	system_state = SYSTEM_SUSPEND; +  	error = syscore_suspend();  	if (error) {  		pr_err("Some system devices failed to power down, aborting hibernation\n"); @@ -317,6 +319,7 @@ static int create_image(int platform_mode)  	syscore_resume();   Enable_irqs: +	system_state = SYSTEM_RUNNING;  	local_irq_enable();   Enable_cpus: @@ -445,6 +448,7 @@ static int resume_target_kernel(bool platform_mode)  		goto Enable_cpus;  	local_irq_disable(); +	system_state = SYSTEM_SUSPEND;  	error = syscore_suspend();  	if (error) @@ -478,6 +482,7 @@ static int resume_target_kernel(bool platform_mode)  	syscore_resume();   Enable_irqs: +	system_state = SYSTEM_RUNNING;  	local_irq_enable();   Enable_cpus: @@ -563,6 +568,7 @@ int hibernation_platform_enter(void)  		goto Enable_cpus;  	local_irq_disable(); +	system_state = SYSTEM_SUSPEND;  	syscore_suspend();  	if (pm_wakeup_pending()) {  		error = -EAGAIN; @@ -575,6 +581,7 @@ int hibernation_platform_enter(void)   Power_up:  	syscore_resume(); +	system_state = SYSTEM_RUNNING;  	local_irq_enable();   Enable_cpus: | 
