Commit 107f2d50 authored by Vlad Buslov's avatar Vlad Buslov Committed by David S. Miller
Browse files

net: sched: refactor ct action helpers to require tcf_lock



In order to remove rtnl lock dependency from flow_action representation
translator, change rtnl_dereference() to rcu_dereference_protected() in ct
action helpers that provide external access to zone and action values. This
is safe to do because the functions are not called from anywhere else
outside flow_action infrastructure which was modified to obtain tcf_lock
when accessing action data in one of previous patches in the series.

Signed-off-by: default avatarVlad Buslov <vladbu@mellanox.com>
Acked-by: default avatarJiri Pirko <jiri@mellanox.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 487e9589
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -33,8 +33,10 @@ struct tcf_ct {
};

#define to_ct(a) ((struct tcf_ct *)a)
#define to_ct_params(a) ((struct tcf_ct_params *) \
			 rtnl_dereference((to_ct(a)->params)))
#define to_ct_params(a)							\
	((struct tcf_ct_params *)					\
	 rcu_dereference_protected(to_ct(a)->params,			\
				   lockdep_is_held(&a->tcfa_lock)))

static inline uint16_t tcf_ct_zone(const struct tc_action *a)
{