On 07/25, Rafael J. Wysocki wrote: > > void refrigerator(void) > { > @@ -50,6 +73,9 @@ void refrigerator(void) > processes around? */ > long save; > > + refrigerator_called = 1; > + wake_up(&refrigerator_waitq); > + This is a bit racy. Unless I missed something, the task should not set refrigerator_called == 1 until it has PF_FROZEN. Otherwise, try_to_freeze_tasks() can set refrigerator_called == 0 after refrigerator() sets it == 1, the the main loop notices this unfrozen task, and goes to sleep. (I must admit, I agree with Pavel on that patch). Oleg. _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/linux-pm