sch_hhf: fix comparison of qlen and limit
authorYang Yingliang <yangyingliang@huawei.com>
Fri, 9 May 2014 08:49:05 +0000 (16:49 +0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 12 May 2014 18:55:21 +0000 (14:55 -0400)
When I use the following command, eth0 cannot send any packets.
 #tc qdisc add dev eth0 root handle 1: hhf limit 1

Because qlen need be smaller than limit, all packets were dropped.
Fix this by qlen *<=* limit.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_hhf.c

index 6e957c3b9854acc025e43d9028b94f0af7f4d6c1..6aab8619bbb002570d206d9ff6bb9c90eb82261a 100644 (file)
@@ -414,7 +414,7 @@ static int hhf_enqueue(struct sk_buff *skb, struct Qdisc *sch)
                }
                bucket->deficit = weight * q->quantum;
        }
-       if (++sch->q.qlen < sch->limit)
+       if (++sch->q.qlen <= sch->limit)
                return NET_XMIT_SUCCESS;
 
        q->drop_overlimit++;