aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/power/hibernate.c
diff options
context:
space:
mode:
authorMyungJoo Ham <myungjoo.ham@samsung.com>2010-11-26 23:07:56 +0100
committerRafael J. Wysocki <rjw@sisk.pl>2010-12-24 15:02:40 +0100
commit5262a47502adcfc3a64403120768f528418a3b79 (patch)
tree5c60e077979fd3d8eed966493b2afaa026b62022 /kernel/power/hibernate.c
parentPM / Hibernate: hibernation_ops->leave should be checked too (diff)
downloadlinux-dev-5262a47502adcfc3a64403120768f528418a3b79.tar.xz
linux-dev-5262a47502adcfc3a64403120768f528418a3b79.zip
PM / Hibernate: When failed, in_suspend should be reset
When hibernation failed due to an error in swsusp_write() called by hibernate(), it skips calling "power_down()" and returns. When hibernate() is called again (probably after fixing up so that swsusp_write() wouldn't fail again), before "in_suspend = 1" of create_image is called, in_suspend should be 0. However, because hibernate() did not reset "in_suspend" after a failure, it's already 1. This patch fixes such inconsistency of "in_suspend" value. Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Diffstat (limited to 'kernel/power/hibernate.c')
-rw-r--r--kernel/power/hibernate.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index ab2836c25038..c9a98beffee4 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -647,6 +647,7 @@ int hibernate(void)
swsusp_free();
if (!error)
power_down();
+ in_suspend = 0;
pm_restore_gfp_mask();
} else {
pr_debug("PM: Image restored successfully.\n");