aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sched/sch_fq.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/net/sched/sch_fq.c b/net/sched/sch_fq.c
index fdc041c57853..d4fa38e4af80 100644
--- a/net/sched/sch_fq.c
+++ b/net/sched/sch_fq.c
@@ -209,21 +209,15 @@ static void fq_gc(struct fq_sched_data *q,
209 } 209 }
210} 210}
211 211
212static const u8 prio2band[TC_PRIO_MAX + 1] = {
213 1, 2, 2, 2, 1, 2, 0, 0 , 1, 1, 1, 1, 1, 1, 1, 1
214};
215
216static struct fq_flow *fq_classify(struct sk_buff *skb, struct fq_sched_data *q) 212static struct fq_flow *fq_classify(struct sk_buff *skb, struct fq_sched_data *q)
217{ 213{
218 struct rb_node **p, *parent; 214 struct rb_node **p, *parent;
219 struct sock *sk = skb->sk; 215 struct sock *sk = skb->sk;
220 struct rb_root *root; 216 struct rb_root *root;
221 struct fq_flow *f; 217 struct fq_flow *f;
222 int band;
223 218
224 /* warning: no starvation prevention... */ 219 /* warning: no starvation prevention... */
225 band = prio2band[skb->priority & TC_PRIO_MAX]; 220 if (unlikely((skb->priority & TC_PRIO_MAX) == TC_PRIO_CONTROL))
226 if (unlikely(band == 0))
227 return &q->internal; 221 return &q->internal;
228 222
229 if (unlikely(!sk)) { 223 if (unlikely(!sk)) {