[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpWha6aCV3kOfCEFsBLNiC7LFTh=K=QaL17rH4=PUoeUmQ@mail.gmail.com>
Date: Sat, 20 May 2017 17:16:45 -0700
From: Cong Wang <xiyou.wangcong@...il.com>
To: Jiri Pirko <jiri@...nulli.us>
Cc: Linux Kernel Network Developers <netdev@...r.kernel.org>,
David Miller <davem@...emloft.net>,
Jamal Hadi Salim <jhs@...atatu.com>,
Eric Dumazet <edumazet@...gle.com>,
Daniel Borkmann <daniel@...earbox.net>,
Simon Horman <simon.horman@...ronome.com>, mlxsw@...lanox.com,
Colin King <colin.king@...onical.com>
Subject: Re: [patch net-next 2/2] net/sched: fix filter flushing
On Sat, May 20, 2017 at 6:01 AM, Jiri Pirko <jiri@...nulli.us> wrote:
> +static void tcf_chain_destroy(struct tcf_chain *chain)
> +{
> + list_del(&chain->list);
> + tcf_chain_flush(chain);
> kfree(chain);
> }
>
> @@ -510,7 +517,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n,
>
> if (n->nlmsg_type == RTM_DELTFILTER && prio == 0) {
> tfilter_notify_chain(net, skb, n, chain, RTM_DELTFILTER);
> - tcf_chain_destroy(chain);
> + tcf_chain_flush(chain);
I wonder if we should return EBUSY and do nothing in case of busy?
The chain is no longer visual to new actions after your list_del(), but
the old one could still use and see it.
Powered by blists - more mailing lists