[PKT_SCHED]: Add and use prio2list() in the pfifo_fast qdisc
Thomas Graf [Sun, 19 Jun 2005 05:58:35 +0000 (22:58 -0700)]
prio2list() returns the relevant sk_buff_head for the
band specified by the priority for a given skb.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>

net/sched/sch_generic.c

index 03cf001..a08a98e 100644 (file)
@@ -311,12 +311,17 @@ static const u8 prio2band[TC_PRIO_MAX+1] =
    generic prio+fifo combination.
  */
 
-static int
-pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc)
+static inline struct sk_buff_head *prio2list(struct sk_buff *skb,
+                                            struct Qdisc *qdisc)
 {
        struct sk_buff_head *list = qdisc_priv(qdisc);
+       return list + prio2band[skb->priority & TC_PRIO_MAX];
+}
 
-       list += prio2band[skb->priority&TC_PRIO_MAX];
+static int
+pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc)
+{
+       struct sk_buff_head *list = prio2list(skb, qdisc);
 
        if (skb_queue_len(list) < qdisc->dev->tx_queue_len) {
                qdisc->q.qlen++;
@@ -345,12 +350,8 @@ pfifo_fast_dequeue(struct Qdisc* qdisc)
 static int
 pfifo_fast_requeue(struct sk_buff *skb, struct Qdisc* qdisc)
 {
-       struct sk_buff_head *list = qdisc_priv(qdisc);
-
-       list += prio2band[skb->priority&TC_PRIO_MAX];
-
        qdisc->q.qlen++;
-       return __qdisc_requeue(skb, qdisc, list);
+       return __qdisc_requeue(skb, qdisc, prio2list(skb, qdisc));
 }
 
 static void