X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fsched%2Fsch_prio.c;h=3fc0c0fa5bccfd7e5c0c3989ae8c9d2e3205308d;hb=9f9afec48221fe4a19f84a9341f5b304bf7d7783;hp=1641db33a994020f557cee3d42ab0cc5505a2743;hpb=7eb9b2f56c9812d03ac63031869bcc42151067b1;p=linux-2.6 diff --git a/net/sched/sch_prio.c b/net/sched/sch_prio.c index 1641db33a9..3fc0c0fa5b 100644 --- a/net/sched/sch_prio.c +++ b/net/sched/sch_prio.c @@ -11,7 +11,6 @@ * Init -- EINVAL when opt undefined */ -#include #include #include #include @@ -165,7 +164,7 @@ static unsigned int prio_drop(struct Qdisc* sch) for (prio = q->bands-1; prio >= 0; prio--) { qdisc = q->queues[prio]; - if ((len = qdisc->ops->drop(qdisc)) != 0) { + if (qdisc->ops->drop && (len = qdisc->ops->drop(qdisc)) != 0) { sch->q.qlen--; return len; } @@ -231,7 +230,8 @@ static int prio_tune(struct Qdisc *sch, struct rtattr *opt) for (i=0; ibands; i++) { if (q->queues[i] == &noop_qdisc) { struct Qdisc *child; - child = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops); + child = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops, + TC_H_MAKE(sch->handle, i + 1)); if (child) { sch_tree_lock(sch); child = xchg(&q->queues[i], child);