diff options
-rw-r--r-- | net/sched/sch_generic.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c index 73e218e646ac..8edefd5d095d 100644 --- a/net/sched/sch_generic.c +++ b/net/sched/sch_generic.c | |||
@@ -331,11 +331,10 @@ static struct sk_buff *pfifo_fast_dequeue(struct Qdisc* qdisc) | |||
331 | int prio; | 331 | int prio; |
332 | struct sk_buff_head *list = qdisc_priv(qdisc); | 332 | struct sk_buff_head *list = qdisc_priv(qdisc); |
333 | 333 | ||
334 | for (prio = 0; prio < PFIFO_FAST_BANDS; prio++, list++) { | 334 | for (prio = 0; prio < PFIFO_FAST_BANDS; prio++) { |
335 | struct sk_buff *skb = __qdisc_dequeue_head(qdisc, list); | 335 | if (!skb_queue_empty(list + prio)) { |
336 | if (skb) { | ||
337 | qdisc->q.qlen--; | 336 | qdisc->q.qlen--; |
338 | return skb; | 337 | return __qdisc_dequeue_head(qdisc, list + prio); |
339 | } | 338 | } |
340 | } | 339 | } |
341 | 340 | ||