aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-06-14 20:06:21 -0400
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2010-08-19 20:17:59 -0400
commitd34a16661ed0fed433c9469d7cfa3ca4d30ca42e (patch)
tree85e2266263387cc0ee35ac945f74029adb473114
parent763008c4357b73c8d18396dfd8d79dc58fa3f99d (diff)
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)
45 return 0; 45 return 0;
46 46
47 rcu_read_lock(); 47 rcu_read_lock();
48 id = rcu_dereference(net_cls_subsys_id); 48 id = rcu_dereference_index_check(net_cls_subsys_id,
49 rcu_read_lock_held());
49 if (id >= 0) 50 if (id >= 0)
50 classid = container_of(task_subsys_state(p, id), 51 classid = container_of(task_subsys_state(p, id),
51 struct cgroup_cls_state, css)->classid; 52 struct cgroup_cls_state, css)->classid;