summaryrefslogtreecommitdiff
path: root/kernel
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-08-14 08:35:04 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-08-14 08:35:04 -0700
commite04bed8a9977c8f66a3427690148ea8f6e81c559 (patch)
tree8932e92f1bc0f63f94a2e638d31c376d63559340 /kernel
parentc0d9b811502a3aa550d4572f205449132714ae75 (diff)
parent47d4272073b20d8a359b4279a9eb468ea2541289 (diff)
Merge "cgroup: Fix deadlock in cpu hotplug path"
Diffstat (limited to 'kernel')
-rw-r--r--kernel/cgroup.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 3fdb7545852e..cd3d81961cc2 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -4092,7 +4092,11 @@ int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from)
*/
do {
css_task_iter_start(&from->self, &it);
- task = css_task_iter_next(&it);
+
+ do {
+ task = css_task_iter_next(&it);
+ } while (task && (task->flags & PF_EXITING));
+
if (task)
get_task_struct(task);
css_task_iter_end(&it);