diff options
Diffstat (limited to 'net/sched/sch_hfsc.c')
-rw-r--r-- | net/sched/sch_hfsc.c | 19 |
1 files changed, 0 insertions, 19 deletions
diff --git a/net/sched/sch_hfsc.c b/net/sched/sch_hfsc.c index d90b1652f2af..071c4749a12b 100644 --- a/net/sched/sch_hfsc.c +++ b/net/sched/sch_hfsc.c | |||
@@ -184,7 +184,6 @@ struct hfsc_sched | |||
184 | struct rb_root eligible; /* eligible tree */ | 184 | struct rb_root eligible; /* eligible tree */ |
185 | struct list_head droplist; /* active leaf class list (for | 185 | struct list_head droplist; /* active leaf class list (for |
186 | dropping) */ | 186 | dropping) */ |
187 | struct sk_buff_head requeue; /* requeued packet */ | ||
188 | struct qdisc_watchdog watchdog; /* watchdog timer */ | 187 | struct qdisc_watchdog watchdog; /* watchdog timer */ |
189 | }; | 188 | }; |
190 | 189 | ||
@@ -1432,7 +1431,6 @@ hfsc_init_qdisc(struct Qdisc *sch, struct nlattr *opt) | |||
1432 | return err; | 1431 | return err; |
1433 | q->eligible = RB_ROOT; | 1432 | q->eligible = RB_ROOT; |
1434 | INIT_LIST_HEAD(&q->droplist); | 1433 | INIT_LIST_HEAD(&q->droplist); |
1435 | skb_queue_head_init(&q->requeue); | ||
1436 | 1434 | ||
1437 | q->root.cl_common.classid = sch->handle; | 1435 | q->root.cl_common.classid = sch->handle; |
1438 | q->root.refcnt = 1; | 1436 | q->root.refcnt = 1; |
@@ -1517,7 +1515,6 @@ hfsc_reset_qdisc(struct Qdisc *sch) | |||
1517 | hlist_for_each_entry(cl, n, &q->clhash.hash[i], cl_common.hnode) | 1515 | hlist_for_each_entry(cl, n, &q->clhash.hash[i], cl_common.hnode) |
1518 | hfsc_reset_class(cl); | 1516 | hfsc_reset_class(cl); |
1519 | } | 1517 | } |
1520 | __skb_queue_purge(&q->requeue); | ||
1521 | q->eligible = RB_ROOT; | 1518 | q->eligible = RB_ROOT; |
1522 | INIT_LIST_HEAD(&q->droplist); | 1519 | INIT_LIST_HEAD(&q->droplist); |
1523 | qdisc_watchdog_cancel(&q->watchdog); | 1520 | qdisc_watchdog_cancel(&q->watchdog); |
@@ -1542,7 +1539,6 @@ hfsc_destroy_qdisc(struct Qdisc *sch) | |||
1542 | hfsc_destroy_class(sch, cl); | 1539 | hfsc_destroy_class(sch, cl); |
1543 | } | 1540 | } |
1544 | qdisc_class_hash_destroy(&q->clhash); | 1541 | qdisc_class_hash_destroy(&q->clhash); |
1545 | __skb_queue_purge(&q->requeue); | ||
1546 | qdisc_watchdog_cancel(&q->watchdog); | 1542 | qdisc_watchdog_cancel(&q->watchdog); |
1547 | } | 1543 | } |
1548 | 1544 | ||
@@ -1609,8 +1605,6 @@ hfsc_dequeue(struct Qdisc *sch) | |||
1609 | 1605 | ||
1610 | if (sch->q.qlen == 0) | 1606 | if (sch->q.qlen == 0) |
1611 | return NULL; | 1607 | return NULL; |
1612 | if ((skb = __skb_dequeue(&q->requeue))) | ||
1613 | goto out; | ||
1614 | 1608 | ||
1615 | cur_time = psched_get_time(); | 1609 | cur_time = psched_get_time(); |
1616 | 1610 | ||
@@ -1659,24 +1653,12 @@ hfsc_dequeue(struct Qdisc *sch) | |||
1659 | set_passive(cl); | 1653 | set_passive(cl); |
1660 | } | 1654 | } |
1661 | 1655 | ||
1662 | out: | ||
1663 | sch->flags &= ~TCQ_F_THROTTLED; | 1656 | sch->flags &= ~TCQ_F_THROTTLED; |
1664 | sch->q.qlen--; | 1657 | sch->q.qlen--; |
1665 | 1658 | ||
1666 | return skb; | 1659 | return skb; |
1667 | } | 1660 | } |
1668 | 1661 | ||
1669 | static int | ||
1670 | hfsc_requeue(struct sk_buff *skb, struct Qdisc *sch) | ||
1671 | { | ||
1672 | struct hfsc_sched *q = qdisc_priv(sch); | ||
1673 | |||
1674 | __skb_queue_head(&q->requeue, skb); | ||
1675 | sch->q.qlen++; | ||
1676 | sch->qstats.requeues++; | ||
1677 | return NET_XMIT_SUCCESS; | ||
1678 | } | ||
1679 | |||
1680 | static unsigned int | 1662 | static unsigned int |
1681 | hfsc_drop(struct Qdisc *sch) | 1663 | hfsc_drop(struct Qdisc *sch) |
1682 | { | 1664 | { |
@@ -1728,7 +1710,6 @@ static struct Qdisc_ops hfsc_qdisc_ops __read_mostly = { | |||
1728 | .enqueue = hfsc_enqueue, | 1710 | .enqueue = hfsc_enqueue, |
1729 | .dequeue = hfsc_dequeue, | 1711 | .dequeue = hfsc_dequeue, |
1730 | .peek = qdisc_peek_dequeued, | 1712 | .peek = qdisc_peek_dequeued, |
1731 | .requeue = hfsc_requeue, | ||
1732 | .drop = hfsc_drop, | 1713 | .drop = hfsc_drop, |
1733 | .cl_ops = &hfsc_class_ops, | 1714 | .cl_ops = &hfsc_class_ops, |
1734 | .priv_size = sizeof(struct hfsc_sched), | 1715 | .priv_size = sizeof(struct hfsc_sched), |