diff options
author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-06-14 20:06:21 -0400 |
---|---|---|
committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2010-08-19 20:17:59 -0400 |
commit | d34a16661ed0fed433c9469d7cfa3ca4d30ca42e (patch) | |
tree | 85e2266263387cc0ee35ac945f74029adb473114 | |
parent | 763008c4357b73c8d18396dfd8d79dc58fa3f99d (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.h | 3 |
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; |