cgroup: fix RCU related sparse warnings
kn->priv which is a void * is used as a RCU pointer by cgroup. When dereferencing it, it was passing kn->priv to rcu_derefreence() without casting it into a RCU pointer triggering address space mismatch warning from sparse. Fix them. Signed-off-by: Tejun Heo <tj@kernel.org> Reported-by: Fengguang Wu <fengguang.wu@intel.com> Acked-by: Acked-by: Zefan Li <lizefan@huawei.com>
This commit is contained in:
parent
dcfe149b9f
commit
e0aed7c74f
|
@ -694,7 +694,7 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry)
|
|||
* @kn->priv is RCU safe. Let's do the RCU dancing.
|
||||
*/
|
||||
rcu_read_lock();
|
||||
cgrp = rcu_dereference(kn->priv);
|
||||
cgrp = rcu_dereference(*(void __rcu __force **)&kn->priv);
|
||||
if (!cgrp || cgroup_is_dead(cgrp)) {
|
||||
rcu_read_unlock();
|
||||
mutex_unlock(&cgroup_mutex);
|
||||
|
|
|
@ -4932,7 +4932,7 @@ struct cgroup_subsys_state *css_tryget_online_from_dir(struct dentry *dentry,
|
|||
* have been or be removed at any point. @kn->priv is RCU
|
||||
* protected for this access. See css_release_work_fn() for details.
|
||||
*/
|
||||
cgrp = rcu_dereference(kn->priv);
|
||||
cgrp = rcu_dereference(*(void __rcu __force **)&kn->priv);
|
||||
if (cgrp)
|
||||
css = cgroup_css(cgrp, ss);
|
||||
|
||||
|
|
Loading…
Reference in New Issue