diff options
-rw-r--r-- | net/sched/sch_tbf.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/net/sched/sch_tbf.c b/net/sched/sch_tbf.c index 8fb8107ab188..0991c640cd3e 100644 --- a/net/sched/sch_tbf.c +++ b/net/sched/sch_tbf.c | |||
@@ -273,7 +273,11 @@ static int tbf_change(struct Qdisc* sch, struct nlattr *opt) | |||
273 | if (max_size < 0) | 273 | if (max_size < 0) |
274 | goto done; | 274 | goto done; |
275 | 275 | ||
276 | if (qopt->limit > 0) { | 276 | if (q->qdisc != &noop_qdisc) { |
277 | err = fifo_set_limit(q->qdisc, qopt->limit); | ||
278 | if (err) | ||
279 | goto done; | ||
280 | } else if (qopt->limit > 0) { | ||
277 | child = fifo_create_dflt(sch, &bfifo_qdisc_ops, qopt->limit); | 281 | child = fifo_create_dflt(sch, &bfifo_qdisc_ops, qopt->limit); |
278 | if (IS_ERR(child)) { | 282 | if (IS_ERR(child)) { |
279 | err = PTR_ERR(child); | 283 | err = PTR_ERR(child); |