lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Message-ID: <CAM_iQpVdO5G9a+C4FecORHOuO7uKu6=fqKa-CUTyFMd_heyU+Q@mail.gmail.com> Date: Fri, 15 Feb 2019 15:17:09 -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 10/17] net: sched: refactor tp insert/delete for concurrent execution On Mon, Feb 11, 2019 at 12:56 AM Vlad Buslov <vladbu@...lanox.com> wrote: > +static bool tcf_proto_is_empty(struct tcf_proto *tp) > +{ > + struct tcf_walker walker = { .fn = walker_noop, }; > + > + if (tp->ops->walk) { > + tp->ops->walk(tp, &walker); > + return !walker.stop; > + } > + return true; > +} > + > +static bool tcf_proto_check_delete(struct tcf_proto *tp) > +{ > + spin_lock(&tp->lock); > + if (tcf_proto_is_empty(tp)) > + tp->deleting = true; > + spin_unlock(&tp->lock); > + return tp->deleting; If you use this spinlock for walking each tp data structure, why it is not needed for adding to/deleting filters from each tp?
Powered by blists - more mailing lists