power: Avoids bogus error messages for the suspend aborts.
authorRuchi Kandoi <kandoiruchi@google.com>
Wed, 15 Oct 2014 00:43:21 +0000 (17:43 -0700)
committerRuchi Kandoi <kandoiruchi@google.com>
Thu, 16 Oct 2014 16:16:24 +0000 (09:16 -0700)
Avoids printing bogus error message "tasks refusing to freeze", in cases
where pending wakeup source caused the suspend abort.

Signed-off-by: Ruchi Kandoi <kandoiruchi@google.com>
Change-Id: I913ad290f501b31cd536d039834c8d24c6f16928

kernel/power/process.c

index fc0df84864495f8c44261961cb6909e66d24a21e..d26dcb5dff870b7b0cde2800e2cda992b3c3080a 100644 (file)
@@ -82,23 +82,24 @@ static int try_to_freeze_tasks(bool user_only)
        do_div(elapsed_msecs64, NSEC_PER_MSEC);
        elapsed_msecs = elapsed_msecs64;
 
-       if (todo) {
+       if (wakeup) {
                printk("\n");
-               printk(KERN_ERR "Freezing of tasks %s after %d.%03d seconds "
-                      "(%d tasks refusing to freeze, wq_busy=%d):\n",
-                      wakeup ? "aborted" : "failed",
+               printk(KERN_ERR "Freezing of tasks aborted after %d.%03d seconds",
+                      elapsed_msecs / 1000, elapsed_msecs % 1000);
+       } else if (todo) {
+               printk("\n");
+               printk(KERN_ERR "Freezing of tasks failed after %d.%03d seconds"
+                      " (%d tasks refusing to freeze, wq_busy=%d):\n",
                       elapsed_msecs / 1000, elapsed_msecs % 1000,
                       todo - wq_busy, wq_busy);
 
-               if (!wakeup) {
-                       read_lock(&tasklist_lock);
-                       do_each_thread(g, p) {
-                               if (p != current && !freezer_should_skip(p)
-                                   && freezing(p) && !frozen(p))
-                                       sched_show_task(p);
-                       } while_each_thread(g, p);
-                       read_unlock(&tasklist_lock);
-               }
+               read_lock(&tasklist_lock);
+               do_each_thread(g, p) {
+                       if (p != current && !freezer_should_skip(p)
+                           && freezing(p) && !frozen(p))
+                               sched_show_task(p);
+               } while_each_thread(g, p);
+               read_unlock(&tasklist_lock);
        } else {
                printk("(elapsed %d.%03d seconds) ", elapsed_msecs / 1000,
                        elapsed_msecs % 1000);