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>
This commit is contained in:
committed by
Rafael J. Wysocki
parent
51d6ff7acd
commit
a556d5b583
@@ -629,12 +629,8 @@ int hibernate(void)
|
|||||||
goto Finish;
|
goto Finish;
|
||||||
|
|
||||||
error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
|
error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
|
||||||
if (error)
|
if (error || freezer_test_done)
|
||||||
goto Thaw;
|
goto Thaw;
|
||||||
if (freezer_test_done) {
|
|
||||||
freezer_test_done = false;
|
|
||||||
goto Thaw;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (in_suspend) {
|
if (in_suspend) {
|
||||||
unsigned int flags = 0;
|
unsigned int flags = 0;
|
||||||
@@ -659,6 +655,10 @@ int hibernate(void)
|
|||||||
|
|
||||||
Thaw:
|
Thaw:
|
||||||
thaw_processes();
|
thaw_processes();
|
||||||
|
|
||||||
|
/* Don't bother checking whether freezer_test_done is true */
|
||||||
|
freezer_test_done = false;
|
||||||
|
|
||||||
Finish:
|
Finish:
|
||||||
free_basic_memory_bitmaps();
|
free_basic_memory_bitmaps();
|
||||||
usermodehelper_enable();
|
usermodehelper_enable();
|
||||||
|
@@ -251,10 +251,8 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
|
|||||||
error = hibernation_snapshot(data->platform_support);
|
error = hibernation_snapshot(data->platform_support);
|
||||||
if (!error) {
|
if (!error) {
|
||||||
error = put_user(in_suspend, (int __user *)arg);
|
error = put_user(in_suspend, (int __user *)arg);
|
||||||
if (!error && !freezer_test_done)
|
data->ready = !freezer_test_done && !error;
|
||||||
data->ready = 1;
|
freezer_test_done = false;
|
||||||
if (freezer_test_done)
|
|
||||||
freezer_test_done = false;
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user