|
@@ -306,22 +306,12 @@ static struct sk_buff *noop_dequeue(struct Qdisc * qdisc)
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-static int noop_requeue(struct sk_buff *skb, struct Qdisc* qdisc)
|
|
|
|
-{
|
|
|
|
- if (net_ratelimit())
|
|
|
|
- printk(KERN_DEBUG "%s deferred output. It is buggy.\n",
|
|
|
|
- skb->dev->name);
|
|
|
|
- kfree_skb(skb);
|
|
|
|
- return NET_XMIT_CN;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
struct Qdisc_ops noop_qdisc_ops __read_mostly = {
|
|
struct Qdisc_ops noop_qdisc_ops __read_mostly = {
|
|
.id = "noop",
|
|
.id = "noop",
|
|
.priv_size = 0,
|
|
.priv_size = 0,
|
|
.enqueue = noop_enqueue,
|
|
.enqueue = noop_enqueue,
|
|
.dequeue = noop_dequeue,
|
|
.dequeue = noop_dequeue,
|
|
.peek = noop_dequeue,
|
|
.peek = noop_dequeue,
|
|
- .requeue = noop_requeue,
|
|
|
|
.owner = THIS_MODULE,
|
|
.owner = THIS_MODULE,
|
|
};
|
|
};
|
|
|
|
|
|
@@ -336,7 +326,6 @@ struct Qdisc noop_qdisc = {
|
|
.flags = TCQ_F_BUILTIN,
|
|
.flags = TCQ_F_BUILTIN,
|
|
.ops = &noop_qdisc_ops,
|
|
.ops = &noop_qdisc_ops,
|
|
.list = LIST_HEAD_INIT(noop_qdisc.list),
|
|
.list = LIST_HEAD_INIT(noop_qdisc.list),
|
|
- .requeue.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock),
|
|
|
|
.q.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock),
|
|
.q.lock = __SPIN_LOCK_UNLOCKED(noop_qdisc.q.lock),
|
|
.dev_queue = &noop_netdev_queue,
|
|
.dev_queue = &noop_netdev_queue,
|
|
};
|
|
};
|
|
@@ -348,7 +337,6 @@ static struct Qdisc_ops noqueue_qdisc_ops __read_mostly = {
|
|
.enqueue = noop_enqueue,
|
|
.enqueue = noop_enqueue,
|
|
.dequeue = noop_dequeue,
|
|
.dequeue = noop_dequeue,
|
|
.peek = noop_dequeue,
|
|
.peek = noop_dequeue,
|
|
- .requeue = noop_requeue,
|
|
|
|
.owner = THIS_MODULE,
|
|
.owner = THIS_MODULE,
|
|
};
|
|
};
|
|
|
|
|
|
@@ -364,7 +352,6 @@ static struct Qdisc noqueue_qdisc = {
|
|
.flags = TCQ_F_BUILTIN,
|
|
.flags = TCQ_F_BUILTIN,
|
|
.ops = &noqueue_qdisc_ops,
|
|
.ops = &noqueue_qdisc_ops,
|
|
.list = LIST_HEAD_INIT(noqueue_qdisc.list),
|
|
.list = LIST_HEAD_INIT(noqueue_qdisc.list),
|
|
- .requeue.lock = __SPIN_LOCK_UNLOCKED(noqueue_qdisc.q.lock),
|
|
|
|
.q.lock = __SPIN_LOCK_UNLOCKED(noqueue_qdisc.q.lock),
|
|
.q.lock = __SPIN_LOCK_UNLOCKED(noqueue_qdisc.q.lock),
|
|
.dev_queue = &noqueue_netdev_queue,
|
|
.dev_queue = &noqueue_netdev_queue,
|
|
};
|
|
};
|
|
@@ -426,12 +413,6 @@ static struct sk_buff *pfifo_fast_peek(struct Qdisc* qdisc)
|
|
return NULL;
|
|
return NULL;
|
|
}
|
|
}
|
|
|
|
|
|
-static int pfifo_fast_requeue(struct sk_buff *skb, struct Qdisc* qdisc)
|
|
|
|
-{
|
|
|
|
- qdisc->q.qlen++;
|
|
|
|
- return __qdisc_requeue(skb, qdisc, prio2list(skb, qdisc));
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
static void pfifo_fast_reset(struct Qdisc* qdisc)
|
|
static void pfifo_fast_reset(struct Qdisc* qdisc)
|
|
{
|
|
{
|
|
int prio;
|
|
int prio;
|
|
@@ -473,7 +454,6 @@ static struct Qdisc_ops pfifo_fast_ops __read_mostly = {
|
|
.enqueue = pfifo_fast_enqueue,
|
|
.enqueue = pfifo_fast_enqueue,
|
|
.dequeue = pfifo_fast_dequeue,
|
|
.dequeue = pfifo_fast_dequeue,
|
|
.peek = pfifo_fast_peek,
|
|
.peek = pfifo_fast_peek,
|
|
- .requeue = pfifo_fast_requeue,
|
|
|
|
.init = pfifo_fast_init,
|
|
.init = pfifo_fast_init,
|
|
.reset = pfifo_fast_reset,
|
|
.reset = pfifo_fast_reset,
|
|
.dump = pfifo_fast_dump,
|
|
.dump = pfifo_fast_dump,
|
|
@@ -499,7 +479,6 @@ struct Qdisc *qdisc_alloc(struct netdev_queue *dev_queue,
|
|
sch->padded = (char *) sch - (char *) p;
|
|
sch->padded = (char *) sch - (char *) p;
|
|
|
|
|
|
INIT_LIST_HEAD(&sch->list);
|
|
INIT_LIST_HEAD(&sch->list);
|
|
- skb_queue_head_init(&sch->requeue);
|
|
|
|
skb_queue_head_init(&sch->q);
|
|
skb_queue_head_init(&sch->q);
|
|
sch->ops = ops;
|
|
sch->ops = ops;
|
|
sch->enqueue = ops->enqueue;
|
|
sch->enqueue = ops->enqueue;
|
|
@@ -571,8 +550,6 @@ void qdisc_destroy(struct Qdisc *qdisc)
|
|
dev_put(qdisc_dev(qdisc));
|
|
dev_put(qdisc_dev(qdisc));
|
|
|
|
|
|
kfree_skb(qdisc->gso_skb);
|
|
kfree_skb(qdisc->gso_skb);
|
|
- __skb_queue_purge(&qdisc->requeue);
|
|
|
|
-
|
|
|
|
kfree((char *) qdisc - qdisc->padded);
|
|
kfree((char *) qdisc - qdisc->padded);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL(qdisc_destroy);
|
|
EXPORT_SYMBOL(qdisc_destroy);
|