diff -Naur orig/kernel/power/process.c changed/kernel/power/process.c --- orig/kernel/power/process.c 2005-01-12 01:49:52.846791528 +0530 +++ changed/kernel/power/process.c 2005-01-12 01:50:02.800278368 +0530 @@ -23,6 +23,7 @@ { if ((p == current) || (p->flags & PF_NOFREEZE) || + (p->flags & PF_UISLEEP) || (p->exit_state == EXIT_ZOMBIE) || (p->exit_state == EXIT_DEAD) || (p->state == TASK_STOPPED) || @@ -68,6 +69,12 @@ read_lock(&tasklist_lock); do_each_thread(g, p) { unsigned long flags; + if (batch_task(p)) + p->flags |= PF_UISLEEP; + /* + * This will make batch tasks run SCHED_NORMAL + * too allow them to be frozen. + */ if (!freezeable(p)) continue; if ((p->flags & PF_FROZEN) ||