mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-22 23:04:43 +00:00
net: sched: traverse classifiers in chain with tcf_get_next_proto()
All users of chain->filters_chain rely on rtnl lock and assume that no new classifier instances are added when traversing the list. Use tcf_get_next_proto() to traverse filters list without relying on rtnl mutex. This function iterates over classifiers by taking reference to current iterator classifier only and doesn't assume external synchronization of filters list. Signed-off-by: Vlad Buslov <vladbu@mellanox.com> Acked-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4dbfa76644
commit
fe2923afc1
3 changed files with 64 additions and 12 deletions
|
@ -46,6 +46,8 @@ struct tcf_chain *tcf_chain_get_by_act(struct tcf_block *block,
|
|||
void tcf_chain_put_by_act(struct tcf_chain *chain);
|
||||
struct tcf_chain *tcf_get_next_chain(struct tcf_block *block,
|
||||
struct tcf_chain *chain);
|
||||
struct tcf_proto *tcf_get_next_proto(struct tcf_chain *chain,
|
||||
struct tcf_proto *tp);
|
||||
void tcf_block_netif_keep_dst(struct tcf_block *block);
|
||||
int tcf_block_get(struct tcf_block **p_block,
|
||||
struct tcf_proto __rcu **p_filter_chain, struct Qdisc *q,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue