[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM_iQpUnmKPh+RCi-JyouKz7PrAiWPp30Ro2qZFrR=MjVHogHA@mail.gmail.com>
Date: Fri, 15 Feb 2019 14:21:05 -0800
From: Cong Wang <xiyou.wangcong@...il.com>
To: Vlad Buslov <vladbu@...lanox.com>
Cc: Linux Kernel Network Developers <netdev@...r.kernel.org>,
Jamal Hadi Salim <jhs@...atatu.com>,
Jiri Pirko <jiri@...nulli.us>,
David Miller <davem@...emloft.net>,
Alexei Starovoitov <ast@...nel.org>,
Daniel Borkmann <daniel@...earbox.net>
Subject: Re: [PATCH net-next v4 05/17] net: sched: traverse chains in block
with tcf_get_next_chain()
(Sorry for joining this late.)
On Mon, Feb 11, 2019 at 12:56 AM Vlad Buslov <vladbu@...lanox.com> wrote:
> @@ -2432,7 +2474,11 @@ static int tc_dump_chain(struct sk_buff *skb, struct netlink_callback *cb)
> index_start = cb->args[0];
> index = 0;
>
> - list_for_each_entry(chain, &block->chain_list, list) {
> + for (chain = __tcf_get_next_chain(block, NULL);
> + chain;
> + chain_prev = chain,
> + chain = __tcf_get_next_chain(block, chain),
> + tcf_chain_put(chain_prev)) {
Why do you want to take the block->lock in each iteration
of the loop rather than taking once for the whole loop?
Powered by blists - more mailing lists