diff options
Diffstat (limited to 'net/sched/sch_hfsc.c')
-rw-r--r-- | net/sched/sch_hfsc.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index 45c31b1a4e1d..5022f9c1f34b 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c | |||
@@ -887,8 +887,7 @@ qdisc_peek_len(struct Qdisc *sch) | |||
887 | 887 | ||
888 | skb = sch->ops->peek(sch); | 888 | skb = sch->ops->peek(sch); |
889 | if (skb == NULL) { | 889 | if (skb == NULL) { |
890 | if (net_ratelimit()) | 890 | qdisc_warn_nonwc("qdisc_peek_len", sch); |
891 | printk("qdisc_peek_len: non work-conserving qdisc ?\n"); | ||
892 | return 0; | 891 | return 0; |
893 | } | 892 | } |
894 | len = qdisc_pkt_len(skb); | 893 | len = qdisc_pkt_len(skb); |
@@ -1140,8 +1139,11 @@ hfsc_delete_class(struct Qdisc *sch, unsigned long arg) | |||
1140 | hfsc_purge_queue(sch, cl); | 1139 | hfsc_purge_queue(sch, cl); |
1141 | qdisc_class_hash_remove(&q->clhash, &cl->cl_common); | 1140 | qdisc_class_hash_remove(&q->clhash, &cl->cl_common); |
1142 | 1141 | ||
1143 | if (--cl->refcnt == 0) | 1142 | BUG_ON(--cl->refcnt == 0); |
1144 | hfsc_destroy_class(sch, cl); | 1143 | /* |
1144 | * This shouldn't happen: we "hold" one cops->get() when called | ||
1145 | * from tc_ctl_tclass; the destroy method is done from cops->put(). | ||
1146 | */ | ||
1145 | 1147 | ||
1146 | sch_tree_unlock(sch); | 1148 | sch_tree_unlock(sch); |
1147 | return 0; | 1149 | return 0; |
@@ -1642,8 +1644,7 @@ hfsc_dequeue(struct Qdisc *sch) | |||
1642 | 1644 | ||
1643 | skb = qdisc_dequeue_peeked(cl->qdisc); | 1645 | skb = qdisc_dequeue_peeked(cl->qdisc); |
1644 | if (skb == NULL) { | 1646 | if (skb == NULL) { |
1645 | if (net_ratelimit()) | 1647 | qdisc_warn_nonwc("HFSC", cl->qdisc); |
1646 | printk("HFSC: Non-work-conserving qdisc ?\n"); | ||
1647 | return NULL; | 1648 | return NULL; |
1648 | } | 1649 | } |
1649 | 1650 | ||