Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+2 -1
+2 -1
include/net/cls_cgroup.h
··· 45 45 return 0; 46 46 47 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 50 if (id >= 0) 50 51 classid = container_of(task_subsys_state(p, id), 51 52 struct cgroup_cls_state, css)->classid;