|
@@ -1138,7 +1138,7 @@ hfsc_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
|
|
|
cl->classid = classid;
|
|
|
cl->sched = q;
|
|
|
cl->cl_parent = parent;
|
|
|
- cl->qdisc = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops);
|
|
|
+ cl->qdisc = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops, classid);
|
|
|
if (cl->qdisc == NULL)
|
|
|
cl->qdisc = &noop_qdisc;
|
|
|
cl->stats_lock = &sch->dev->queue_lock;
|
|
@@ -1271,7 +1271,8 @@ hfsc_graft_class(struct Qdisc *sch, unsigned long arg, struct Qdisc *new,
|
|
|
if (cl->level > 0)
|
|
|
return -EINVAL;
|
|
|
if (new == NULL) {
|
|
|
- new = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops);
|
|
|
+ new = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops,
|
|
|
+ cl->classid);
|
|
|
if (new == NULL)
|
|
|
new = &noop_qdisc;
|
|
|
}
|
|
@@ -1514,7 +1515,8 @@ hfsc_init_qdisc(struct Qdisc *sch, struct rtattr *opt)
|
|
|
q->root.refcnt = 1;
|
|
|
q->root.classid = sch->handle;
|
|
|
q->root.sched = q;
|
|
|
- q->root.qdisc = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops);
|
|
|
+ q->root.qdisc = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops,
|
|
|
+ sch->handle);
|
|
|
if (q->root.qdisc == NULL)
|
|
|
q->root.qdisc = &noop_qdisc;
|
|
|
q->root.stats_lock = &sch->dev->queue_lock;
|