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 <jiri@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Jiri Pirko
2018-01-17 11:46:48 +01:00
committed by David S. Miller
parent 9d3aaff3d8
commit f36fe1c498
6 changed files with 76 additions and 4 deletions

View File

@@ -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)