diff options
author | Tejun Heo <tj@kernel.org> | 2016-05-26 15:42:13 -0400 |
---|---|---|
committer | Sasha Levin <sasha.levin@oracle.com> | 2016-07-10 20:19:58 -0400 |
commit | 0356b95fcc4e7eb670633be53db29147201ddce4 (patch) | |
tree | 1f8a610236b078357eca31397c303d99bdfb1a36 /kernel | |
parent | 4c9b1064a186967df8c81f7305df533f56678abf (diff) | |
download | lwn-0356b95fcc4e7eb670633be53db29147201ddce4.tar.gz lwn-0356b95fcc4e7eb670633be53db29147201ddce4.zip |
cgroup: set css->id to -1 during init
[ Upstream commit 8fa3b8d689a54d6d04ff7803c724fb7aca6ce98e ]
If percpu_ref initialization fails during css_create(), the free path
can end up trying to free css->id of zero. As ID 0 is unused, it
doesn't cause a critical breakage but it does trigger a warning
message. Fix it by setting css->id to -1 from init_and_link_css().
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Wenwei Tao <ww.tao0320@gmail.com>
Fixes: 01e586598b22 ("cgroup: release css->id after css_free")
Cc: stable@vger.kernel.org # v4.0+
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/cgroup.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 530fecfa3992..d01c60425761 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c @@ -4478,6 +4478,7 @@ static void init_and_link_css(struct cgroup_subsys_state *css, memset(css, 0, sizeof(*css)); css->cgroup = cgrp; css->ss = ss; + css->id = -1; INIT_LIST_HEAD(&css->sibling); INIT_LIST_HEAD(&css->children); css->serial_nr = css_serial_nr_next++; |