Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 82fe9b0d authored by Tejun Heo's avatar Tejun Heo
Browse files

cgroup: move init_css_set initialization inside cgroup_mutex



cgroup_init() was doing init_css_set initialization outside
cgroup_mutex, which is fine but we want to add lockdep annotation on
subsystem iterations and cgroup_init() will trigger it spuriously.
Move init_css_set initialization inside cgroup_mutex.

Signed-off-by: default avatarTejun Heo <tj@kernel.org>
Acked-by: default avatarLi Zefan <lizefan@huawei.com>
parent 5549c497
Loading
Loading
Loading
Loading
+4 −4
Original line number Original line Diff line number Diff line
@@ -4888,14 +4888,14 @@ int __init cgroup_init(void)
			cgroup_init_idr(ss, init_css_set.subsys[ss->subsys_id]);
			cgroup_init_idr(ss, init_css_set.subsys[ss->subsys_id]);
	}
	}


	/* Add init_css_set to the hash table */
	key = css_set_hash(init_css_set.subsys);
	hash_add(css_set_table, &init_css_set.hlist, key);

	/* allocate id for the dummy hierarchy */
	/* allocate id for the dummy hierarchy */
	mutex_lock(&cgroup_mutex);
	mutex_lock(&cgroup_mutex);
	mutex_lock(&cgroup_root_mutex);
	mutex_lock(&cgroup_root_mutex);


	/* Add init_css_set to the hash table */
	key = css_set_hash(init_css_set.subsys);
	hash_add(css_set_table, &init_css_set.hlist, key);

	BUG_ON(cgroup_init_root_id(&cgroup_dummy_root));
	BUG_ON(cgroup_init_root_id(&cgroup_dummy_root));


	mutex_unlock(&cgroup_root_mutex);
	mutex_unlock(&cgroup_root_mutex);