Commit 43753e58 authored by Rafael J. Wysocki's avatar Rafael J. Wysocki

Merge branch 'pm-freezer' into pm-sleep

* pm-freezer:
  PM / Freezer: Remove the "userspace only" constraint from freezer[_do_not]_count()
parents e5b16746 467de1fc
......@@ -67,33 +67,27 @@ static inline bool cgroup_freezing(struct task_struct *task)
* appropriately in case the child has exited before the freezing of tasks is
* complete. However, we don't want kernel threads to be frozen in unexpected
* places, so we allow them to block freeze_processes() instead or to set
* PF_NOFREEZE if needed and PF_FREEZER_SKIP is only set for userland vfork
* parents. Fortunately, in the ____call_usermodehelper() case the parent won't
* really block freeze_processes(), since ____call_usermodehelper() (the child)
* does a little before exec/exit and it can't be frozen before waking up the
* parent.
* PF_NOFREEZE if needed. Fortunately, in the ____call_usermodehelper() case the
* parent won't really block freeze_processes(), since ____call_usermodehelper()
* (the child) does a little before exec/exit and it can't be frozen before
* waking up the parent.
*/
/*
* If the current task is a user space one, tell the freezer not to count it as
* freezable.
*/
/* Tell the freezer not to count the current task as freezable. */
static inline void freezer_do_not_count(void)
{
if (current->mm)
current->flags |= PF_FREEZER_SKIP;
current->flags |= PF_FREEZER_SKIP;
}
/*
* If the current task is a user space one, tell the freezer to count it as
* freezable again and try to freeze it.
* Tell the freezer to count the current task as freezable again and try to
* freeze it.
*/
static inline void freezer_count(void)
{
if (current->mm) {
current->flags &= ~PF_FREEZER_SKIP;
try_to_freeze();
}
current->flags &= ~PF_FREEZER_SKIP;
try_to_freeze();
}
/*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment