On Fri, Jan 19, 2018 at 6:12 AM, Davide Caratti <dcara...@redhat.com> wrote: > static int tcf_csum_dump(struct sk_buff *skb, struct tc_action *a, int bind, > @@ -575,15 +594,18 @@ static int tcf_csum_dump(struct sk_buff *skb, struct > tc_action *a, int bind, > { > unsigned char *b = skb_tail_pointer(skb); > struct tcf_csum *p = to_tcf_csum(a); > + struct tcf_csum_params *params; > struct tc_csum opt = { > - .update_flags = p->update_flags, > .index = p->tcf_index, > - .action = p->tcf_action, > .refcnt = p->tcf_refcnt - ref, > .bindcnt = p->tcf_bindcnt - bind, > }; > struct tcf_t t; > > + params = rcu_dereference(p->params);
I think you need rtnl_dereference() here, as we don't have RCU read lock here? > + opt.action = params->action; > + opt.update_flags = params->update_flags; > + Thanks.