#include <linux/freezer.h>
#include <linux/delay.h>
#include <linux/workqueue.h>
-#include <linux/wakelock.h>
/*
* Timeout for stopping processes
struct timeval start, end;
u64 elapsed_csecs64;
unsigned int elapsed_csecs;
- unsigned int wakeup = 0;
do_gettimeofday(&start);
todo += wq_busy;
}
- if (todo && has_wake_lock(WAKE_LOCK_SUSPEND)) {
- wakeup = 1;
- break;
- }
if (!todo || time_after(jiffies, end_time))
break;
* and caller must call thaw_processes() if something fails),
* but it cleans up leftover PF_FREEZE requests.
*/
- 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, wq_busy=%d):\n",
- elapsed_csecs / 100, elapsed_csecs % 100,
- todo - wq_busy, wq_busy);
- }
+ printk("\n");
+ printk(KERN_ERR "Freezing of tasks failed after %d.%02d seconds "
+ "(%d tasks refusing to freeze, wq_busy=%d):\n",
+ elapsed_csecs / 100, elapsed_csecs % 100,
+ todo - wq_busy, wq_busy);
+
thaw_workqueues();
read_lock(&tasklist_lock);
do_each_thread(g, p) {
task_lock(p);
- if (freezing(p) && !freezer_should_skip(p) &&
- elapsed_csecs > 100)
+ if (freezing(p) && !freezer_should_skip(p))
sched_show_task(p);
cancel_freezing(p);
task_unlock(p);