diff options
author | Alexander Aring <aring@mojatatu.com> | 2017-12-20 12:35:21 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-21 12:32:51 -0500 |
commit | a38a98821c939e67e5906bddbed1d15af5ca860d (patch) | |
tree | 9f6274490d3b996c5bbdd6cf6505f76f79b0920d /net/sched/sch_cbq.c | |
parent | d0bd684dddab51ed017ece0359f26b038ec31940 (diff) | |
download | linux-a38a98821c939e67e5906bddbed1d15af5ca860d.tar.gz linux-a38a98821c939e67e5906bddbed1d15af5ca860d.tar.bz2 linux-a38a98821c939e67e5906bddbed1d15af5ca860d.zip |
net: sch: api: add extack support in qdisc_create_dflt
This patch adds extack support for the function qdisc_create_dflt which is
a common used function in the tc subsystem. Callers which are interested
in the receiving error can assign extack to get a more detailed
information why qdisc_create_dflt failed. The function qdisc_create_dflt
will also call an init callback which can fail by any per-qdisc specific
handling.
Cc: David Ahern <dsahern@gmail.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: Alexander Aring <aring@mojatatu.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sched/sch_cbq.c')
-rw-r--r-- | net/sched/sch_cbq.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c index 248ea26997b9..efe5bf15b031 100644 --- a/net/sched/sch_cbq.c +++ b/net/sched/sch_cbq.c @@ -1172,7 +1172,7 @@ static int cbq_init(struct Qdisc *sch, struct nlattr *opt, q->link.common.classid = sch->handle; q->link.qdisc = sch; q->link.q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, - sch->handle); + sch->handle, NULL); if (!q->link.q) q->link.q = &noop_qdisc; else @@ -1376,8 +1376,8 @@ static int cbq_graft(struct Qdisc *sch, unsigned long arg, struct Qdisc *new, struct cbq_class *cl = (struct cbq_class *)arg; if (new == NULL) { - new = qdisc_create_dflt(sch->dev_queue, - &pfifo_qdisc_ops, cl->common.classid); + new = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, + cl->common.classid, extack); if (new == NULL) return -ENOBUFS; } @@ -1596,7 +1596,8 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t cl->R_tab = rtab; rtab = NULL; - cl->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid); + cl->q = qdisc_create_dflt(sch->dev_queue, &pfifo_qdisc_ops, classid, + NULL); if (!cl->q) cl->q = &noop_qdisc; else |