mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
net: sched: introduce block mechanism to handle netif_keep_dst calls
Couple of classifiers call netif_keep_dst directly on q->dev. That is not possible to do directly for shared blocke where multiple qdiscs are owning the block. So introduce a infrastructure to keep track of the block owners in list and use this list to implement block variant of netif_keep_dst. Signed-off-by: Jiri Pirko <[email protected]> Acked-by: Jamal Hadi Salim <[email protected]> Acked-by: David Ahern <[email protected]> Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
parent
9d3aaff3d8
commit
f36fe1c498
6 changed files with 76 additions and 4 deletions
|
|
@ -39,6 +39,7 @@ bool tcf_queue_work(struct work_struct *work);
|
|||
struct tcf_chain *tcf_chain_get(struct tcf_block *block, u32 chain_index,
|
||||
bool create);
|
||||
void tcf_chain_put(struct tcf_chain *chain);
|
||||
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,
|
||||
struct netlink_ext_ack *extack);
|
||||
|
|
|
|||
|
|
@ -289,6 +289,8 @@ struct tcf_block {
|
|||
struct net *net;
|
||||
struct Qdisc *q;
|
||||
struct list_head cb_list;
|
||||
struct list_head owner_list;
|
||||
bool keep_dst;
|
||||
};
|
||||
|
||||
static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz)
|
||||
|
|
|
|||
Loading…
Reference in a new issue