[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpWybQrpEddtdbCgy8u6_b46orzddko2Spy8nxEGtwG4pA@mail.gmail.com>
Date: Sun, 21 Jan 2018 12:28:12 -0800
From: Cong Wang <xiyou.wangcong@...il.com>
To: Davide Caratti <dcaratti@...hat.com>
Cc: "David S. Miller" <davem@...emloft.net>,
Linux Kernel Network Developers <netdev@...r.kernel.org>,
Jiri Pirko <jiri@...nulli.us>
Subject: Re: [PATCH net-next v2 2/2] net/sched: act_csum: don't use spinlock
in the fast path
On Fri, Jan 19, 2018 at 6:12 AM, Davide Caratti <dcaratti@...hat.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.
Powered by blists - more mailing lists