| From 1200a11c7f5d2b2e984bd84ccec59bad00bb5b5c Mon Sep 17 00:00:00 2001 |
| From: "Srivatsa S. Bhat" <srivatsa.bhat@linux.vnet.ibm.com> |
| Date: Sat, 4 Feb 2012 23:39:56 +0100 |
| Subject: 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> |
| (cherry picked from commit a556d5b58345ccf51826b9ceac078072f830738b) |
| |
| Conflicts: |
| |
| kernel/power/hibernate.c |
| |
| Signed-off-by: Simon Horman <horms@verge.net.au> |
| --- |
| kernel/power/hibernate.c | 10 +++++----- |
| kernel/power/user.c | 6 ++---- |
| 2 files changed, 7 insertions(+), 9 deletions(-) |
| |
| --- a/kernel/power/hibernate.c |
| +++ b/kernel/power/hibernate.c |
| @@ -639,12 +639,8 @@ int hibernate(void) |
| goto Free_bitmaps; |
| |
| error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM); |
| - if (error) |
| + if (error || freezer_test_done) |
| goto Thaw; |
| - if (freezer_test_done) { |
| - freezer_test_done = false; |
| - goto Thaw; |
| - } |
| |
| if (in_suspend) { |
| unsigned int flags = 0; |
| @@ -669,6 +665,10 @@ int hibernate(void) |
| |
| Thaw: |
| thaw_processes(); |
| + |
| + /* Don't bother checking whether freezer_test_done is true */ |
| + freezer_test_done = false; |
| + |
| Free_bitmaps: |
| free_basic_memory_bitmaps(); |
| Enable_umh: |
| --- a/kernel/power/user.c |
| +++ b/kernel/power/user.c |
| @@ -251,10 +251,8 @@ static long snapshot_ioctl(struct file * |
| error = hibernation_snapshot(data->platform_support); |
| if (!error) { |
| error = put_user(in_suspend, (int __user *)arg); |
| - if (!error && !freezer_test_done) |
| - data->ready = 1; |
| - if (freezer_test_done) |
| - freezer_test_done = false; |
| + data->ready = !freezer_test_done && !error; |
| + freezer_test_done = false; |
| } |
| break; |
| |