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

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
...@@ -33,8 +33,10 @@ struct tcf_ct { ...@@ -33,8 +33,10 @@ struct tcf_ct {
}; };
#define to_ct(a) ((struct tcf_ct *)a) #define to_ct(a) ((struct tcf_ct *)a)
#define to_ct_params(a) ((struct tcf_ct_params *) \ #define to_ct_params(a) \
rtnl_dereference((to_ct(a)->params))) ((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) static inline uint16_t tcf_ct_zone(const struct tc_action *a)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment