unify compat fanotify_mark(2), switch to COMPAT_SYSCALL_DEFINE
[firefly-linux-kernel-4.4.55.git] / kernel / power / suspend.c
index d4feda084a3aa9880611666352283deb1b28b3ef..bef86d121eb2ca5bcba2001a447f38e90476c5b5 100644 (file)
@@ -76,8 +76,20 @@ EXPORT_SYMBOL_GPL(suspend_set_ops);
 
 bool valid_state(suspend_state_t state)
 {
-       if (state == PM_SUSPEND_FREEZE)
-               return true;
+       if (state == PM_SUSPEND_FREEZE) {
+#ifdef CONFIG_PM_DEBUG
+               if (pm_test_level != TEST_NONE &&
+                   pm_test_level != TEST_FREEZER &&
+                   pm_test_level != TEST_DEVICES &&
+                   pm_test_level != TEST_PLATFORM) {
+                       printk(KERN_WARNING "Unsupported pm_test mode for "
+                                       "freeze state, please choose "
+                                       "none/freezer/devices/platform.\n");
+                       return false;
+               }
+#endif
+                       return true;
+       }
        /*
         * PM_SUSPEND_STANDBY and PM_SUSPEND_MEMORY states need lowlevel
         * support and need to be valid to the lowlevel
@@ -184,6 +196,9 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
                        goto Platform_wake;
        }
 
+       if (suspend_test(TEST_PLATFORM))
+               goto Platform_wake;
+
        /*
         * PM_SUSPEND_FREEZE equals
         * frozen processes + suspended devices + idle processors.
@@ -195,9 +210,6 @@ static int suspend_enter(suspend_state_t state, bool *wakeup)
                goto Platform_wake;
        }
 
-       if (suspend_test(TEST_PLATFORM))
-               goto Platform_wake;
-
        error = disable_nonboot_cpus();
        if (error || suspend_test(TEST_CPUS))
                goto Enable_cpus;