diff options
author | Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com> | 2012-02-04 17:39:56 -0500 |
---|---|---|
committer | Rafael J. Wysocki <rjw@sisk.pl> | 2012-02-09 17:56:01 -0500 |
commit | a556d5b58345ccf51826b9ceac078072f830738b (patch) | |
tree | 35b66f1c49cf6f5437811051965f45a14f1ee15f | |
parent | 51d6ff7acd920379f54d0be4dbe844a46178a65f (diff) |
PM / Hibernate: Refactor and simplify freezer_test_done
The code related to 'freezer_test_done' is needlessly convoluted.
Refactor the code and simplify the implementation.
Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat@linux.vnet.ibm.com>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
-rw-r--r-- | kernel/power/hibernate.c | 10 | ||||
-rw-r--r-- | kernel/power/user.c | 6 |
2 files changed, 7 insertions, 9 deletions
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c index c6dee739080c..72baaf011fb7 100644 --- a/kernel/power/hibernate.c +++ b/kernel/power/hibernate.c | |||
@@ -629,12 +629,8 @@ int hibernate(void) | |||
629 | goto Finish; | 629 | goto Finish; |
630 | 630 | ||
631 | error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); | 631 | error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); |
632 | if (error) | 632 | if (error || freezer_test_done) |
633 | goto Thaw; | ||
634 | if (freezer_test_done) { | ||
635 | freezer_test_done = false; | ||
636 | goto Thaw; | 633 | goto Thaw; |
637 | } | ||
638 | 634 | ||
639 | if (in_suspend) { | 635 | if (in_suspend) { |
640 | unsigned int flags = 0; | 636 | unsigned int flags = 0; |
@@ -659,6 +655,10 @@ int hibernate(void) | |||
659 | 655 | ||
660 | Thaw: | 656 | Thaw: |
661 | thaw_processes(); | 657 | thaw_processes(); |
658 | |||
659 | /* Don't bother checking whether freezer_test_done is true */ | ||
660 | freezer_test_done = false; | ||
661 | |||
662 | Finish: | 662 | Finish: |
663 | free_basic_memory_bitmaps(); | 663 | free_basic_memory_bitmaps(); |
664 | usermodehelper_enable(); | 664 | usermodehelper_enable(); |
diff --git a/kernel/power/user.c b/kernel/power/user.c index 7bee91f9af51..33c4329205af 100644 --- a/kernel/power/user.c +++ b/kernel/power/user.c | |||
@@ -251,10 +251,8 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd, | |||
251 | error = hibernation_snapshot(data->platform_support); | 251 | error = hibernation_snapshot(data->platform_support); |
252 | if (!error) { | 252 | if (!error) { |
253 | error = put_user(in_suspend, (int __user *)arg); | 253 | error = put_user(in_suspend, (int __user *)arg); |
254 | if (!error && !freezer_test_done) | 254 | data->ready = !freezer_test_done && !error; |
255 | data->ready = 1; | 255 | freezer_test_done = false; |
256 | if (freezer_test_done) | ||
257 | freezer_test_done = false; | ||
258 | } | 256 | } |
259 | break; | 257 | break; |
260 | 258 | ||