mirror of https://gitee.com/openkylin/linux.git
net: sched: add flags to Qdisc class ops struct
Extend Qdisc_class_ops with flags. Create enum to hold possible class ops flag values. Add first class ops flags value QDISC_CLASS_OPS_DOIT_UNLOCKED to indicate that class ops functions can be called without taking rtnl lock. 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
12db03b65c
commit
dfcd2a2b22
|
@ -179,6 +179,7 @@ static inline int qdisc_avail_bulklimit(const struct netdev_queue *txq)
|
|||
}
|
||||
|
||||
struct Qdisc_class_ops {
|
||||
unsigned int flags;
|
||||
/* Child qdisc manipulation */
|
||||
struct netdev_queue * (*select_queue)(struct Qdisc *, struct tcmsg *);
|
||||
int (*graft)(struct Qdisc *, unsigned long cl,
|
||||
|
@ -210,6 +211,13 @@ struct Qdisc_class_ops {
|
|||
struct gnet_dump *);
|
||||
};
|
||||
|
||||
/* Qdisc_class_ops flag values */
|
||||
|
||||
/* Implements API that doesn't require rtnl lock */
|
||||
enum qdisc_class_ops_flags {
|
||||
QDISC_CLASS_OPS_DOIT_UNLOCKED = 1,
|
||||
};
|
||||
|
||||
struct Qdisc_ops {
|
||||
struct Qdisc_ops *next;
|
||||
const struct Qdisc_class_ops *cl_ops;
|
||||
|
|
Loading…
Reference in New Issue