--- zzzz-none-000/linux-2.4.17/net/sched/sch_generic.c 2000-08-18 17:26:25.000000000 +0000 +++ sangam-fb-322/linux-2.4.17/net/sched/sch_generic.c 2004-11-24 13:22:06.000000000 +0000 @@ -276,9 +276,12 @@ pfifo_fast_enqueue(struct sk_buff *skb, struct Qdisc* qdisc) { struct sk_buff_head *list; + u8 band = prio2band[skb->priority&TC_PRIO_MAX]; - list = ((struct sk_buff_head*)qdisc->data) + - prio2band[skb->priority&TC_PRIO_MAX]; + list = ((struct sk_buff_head*)qdisc->data) + band; + + if (!skb->cb[47]) + skb->cb[47] = (char)((band == 0) ? 1:3); if (list->qlen <= skb->dev->tx_queue_len) { __skb_queue_tail(list, skb); @@ -313,7 +316,7 @@ struct sk_buff_head *list; list = ((struct sk_buff_head*)qdisc->data) + - prio2band[skb->priority&TC_PRIO_MAX]; + prio2band[skb->priority&TC_PRIO_MAX]; __skb_queue_head(list, skb); qdisc->q.qlen++;