Hi! > Avoids a problem where the device sometimes hangs for 20 seconds > before the screen is turned on. Fix the problem rather than working around it. > @@ -62,6 +64,10 @@ static int try_to_freeze_tasks(bool sig_only) > } 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); I do not see why wakelocks should change refrigerator behaviour. > @@ -77,11 +83,17 @@ static int try_to_freeze_tasks(bool sig_only) > * 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(); Please find why the refrigerator fails for you. Yes, we want quiescent state at least for hibernation resume. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm