|
@@ -432,11 +432,11 @@ static inline struct sk_buff_head *band2list(struct pfifo_fast_priv *priv,
|
|
|
|
|
|
static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc)
|
|
static int pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc)
|
|
{
|
|
{
|
|
- int band = prio2band[skb->priority & TC_PRIO_MAX];
|
|
|
|
- struct pfifo_fast_priv *priv = qdisc_priv(qdisc);
|
|
|
|
- struct sk_buff_head *list = band2list(priv, band);
|
|
|
|
|
|
+ if (skb_queue_len(&qdisc->q) < qdisc_dev(qdisc)->tx_queue_len) {
|
|
|
|
+ int band = prio2band[skb->priority & TC_PRIO_MAX];
|
|
|
|
+ struct pfifo_fast_priv *priv = qdisc_priv(qdisc);
|
|
|
|
+ struct sk_buff_head *list = band2list(priv, band);
|
|
|
|
|
|
- if (skb_queue_len(list) < qdisc_dev(qdisc)->tx_queue_len) {
|
|
|
|
priv->bitmap |= (1 << band);
|
|
priv->bitmap |= (1 << band);
|
|
qdisc->q.qlen++;
|
|
qdisc->q.qlen++;
|
|
return __qdisc_enqueue_tail(skb, qdisc, list);
|
|
return __qdisc_enqueue_tail(skb, qdisc, list);
|