diff options
Diffstat (limited to 'target/linux/goldfish/patches-2.6.30/0070-PM-wakelock-Abort-task-freezing-if-a-wake-lock-is.patch')
-rw-r--r-- | target/linux/goldfish/patches-2.6.30/0070-PM-wakelock-Abort-task-freezing-if-a-wake-lock-is.patch | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/target/linux/goldfish/patches-2.6.30/0070-PM-wakelock-Abort-task-freezing-if-a-wake-lock-is.patch b/target/linux/goldfish/patches-2.6.30/0070-PM-wakelock-Abort-task-freezing-if-a-wake-lock-is.patch deleted file mode 100644 index a93df9ad41..0000000000 --- a/target/linux/goldfish/patches-2.6.30/0070-PM-wakelock-Abort-task-freezing-if-a-wake-lock-is.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 3f8e407c418205252f00615da4d0182e8c960344 Mon Sep 17 00:00:00 2001 -From: =?utf-8?q?Arve=20Hj=C3=B8nnev=C3=A5g?= <arve@android.com> -Date: Tue, 14 Oct 2008 16:02:39 -0700 -Subject: [PATCH 070/134] PM: wakelock: Abort task freezing if a wake lock is held. - -Avoids a problem where the device sometimes hangs for 20 seconds -before the screen is turned on. ---- - kernel/power/process.c | 23 ++++++++++++++++++----- - 1 files changed, 18 insertions(+), 5 deletions(-) - ---- a/kernel/power/process.c -+++ b/kernel/power/process.c -@@ -13,6 +13,7 @@ - #include <linux/module.h> - #include <linux/syscalls.h> - #include <linux/freezer.h> -+#include <linux/wakelock.h> - - /* - * Timeout for stopping processes -@@ -36,6 +37,7 @@ static int try_to_freeze_tasks(bool sig_ - struct timeval start, end; - u64 elapsed_csecs64; - unsigned int elapsed_csecs; -+ unsigned int wakeup = 0; - - do_gettimeofday(&start); - -@@ -62,6 +64,10 @@ static int try_to_freeze_tasks(bool sig_ - } while_each_thread(g, p); - read_unlock(&tasklist_lock); - yield(); /* Yield is okay here */ -+ if (todo && has_wake_lock(WAKE_LOCK_SUSPEND)) { -+ wakeup = 1; -+ break; -+ } - if (time_after(jiffies, end_time)) - break; - } while (todo); -@@ -77,11 +83,18 @@ static int try_to_freeze_tasks(bool sig_ - * and caller must call thaw_processes() if something fails), - * but it cleans up leftover PF_FREEZE requests. - */ -- printk("\n"); -- printk(KERN_ERR "Freezing of tasks failed after %d.%02d seconds " -- "(%d tasks refusing to freeze):\n", -- elapsed_csecs / 100, elapsed_csecs % 100, todo); -- show_state(); -+ if(wakeup) { -+ printk("\n"); -+ printk(KERN_ERR "Freezing of %s aborted\n", -+ sig_only ? "user space " : "tasks "); -+ } -+ else { -+ printk("\n"); -+ printk(KERN_ERR "Freezing of tasks failed after %d.%02d seconds " -+ "(%d tasks refusing to freeze):\n", -+ elapsed_csecs / 100, elapsed_csecs % 100, todo); -+ show_state(); -+ } - read_lock(&tasklist_lock); - do_each_thread(g, p) { - task_lock(p); |