summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-06-14 17:06:21 -0700
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-19 17:17:59 -0700
commitd34a16661ed0fed433c9469d7cfa3ca4d30ca42e (patch)
tree85e2266263387cc0ee35ac945f74029adb473114
parent763008c4357b73c8d18396dfd8d79dc58fa3f99d (diff)
downloadlinux-d34a16661ed0fed433c9469d7cfa3ca4d30ca42e.tar.bz2
net: convert to rcu_dereference_index_check()
The task_cls_classid() function applies rcu_dereference() to integers, which does not work with the shiny new sparse-based checking in rcu_dereference(). This commit therefore moves to the new RCU API rcu_dereference_index_check(). Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> Reviewed-by: Josh Triplett <josh@joshtriplett.org> Acked-by: David S. Miller <davem@davemloft.net> Acked-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--include/net/cls_cgroup.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/net/cls_cgroup.h b/include/net/cls_cgroup.h
index 726cc3536409..dd1fdb8293f5 100644
--- a/include/net/cls_cgroup.h
+++ b/include/net/cls_cgroup.h
@@ -45,7 +45,8 @@ static inline u32 task_cls_classid(struct task_struct *p)
return 0;
rcu_read_lock();
- id = rcu_dereference(net_cls_subsys_id);
+ id = rcu_dereference_index_check(net_cls_subsys_id,
+ rcu_read_lock_held());
if (id >= 0)
classid = container_of(task_subsys_state(p, id),
struct cgroup_cls_state, css)->classid;