From: Tejun Heo Date: Mon, 10 Jun 2019 16:08:27 +0000 (-0700) Subject: cgroup: Fix css_task_iter_advance_css_set() cset skip condition X-Git-Tag: v5.4-rc1~793^2~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c596687a008b579c503afb7a64fcacc7270fae9e;p=platform%2Fkernel%2Flinux-rpi.git cgroup: Fix css_task_iter_advance_css_set() cset skip condition While adding handling for dying task group leaders c03cd7738a83 ("cgroup: Include dying leaders with live threads in PROCS iterations") added an inverted cset skip condition to css_task_iter_advance_css_set(). It should skip cset if it's completely empty but was incorrectly testing for the inverse condition for the dying_tasks list. Fix it. Signed-off-by: Tejun Heo Fixes: c03cd7738a83 ("cgroup: Include dying leaders with live threads in PROCS iterations") Reported-by: syzbot+d4bba5ccd4f9a2a68681@syzkaller.appspotmail.com --- diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c index 9538a12..6420ff8 100644 --- a/kernel/cgroup/cgroup.c +++ b/kernel/cgroup/cgroup.c @@ -4401,7 +4401,7 @@ static void css_task_iter_advance_css_set(struct css_task_iter *it) it->task_pos = NULL; return; } - } while (!css_set_populated(cset) && !list_empty(&cset->dying_tasks)); + } while (!css_set_populated(cset) && list_empty(&cset->dying_tasks)); if (!list_empty(&cset->tasks)) it->task_pos = cset->tasks.next;