[NET_SCHED]: sch_netem: fix off-by-one in send time comparison
netem checks PSCHED_TLESS(cb->time_to_send, now) to find out whether it is allowed to send a packet, which is equivalent to cb->time_to_send < now. Use !PSCHED_TLESS(now, cb->time_to_send) instead to properly handle cb->time_to_send == now. Signed-off-by: Patrick McHardy <kaber@trash.net> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
c7bf5f9dc2
commit
76d643cd3b
@@ -286,7 +286,7 @@ static struct sk_buff *netem_dequeue(struct Qdisc *sch)
|
|||||||
/* if more time remaining? */
|
/* if more time remaining? */
|
||||||
PSCHED_GET_TIME(now);
|
PSCHED_GET_TIME(now);
|
||||||
|
|
||||||
if (PSCHED_TLESS(cb->time_to_send, now)) {
|
if (!PSCHED_TLESS(now, cb->time_to_send)) {
|
||||||
pr_debug("netem_dequeue: return skb=%p\n", skb);
|
pr_debug("netem_dequeue: return skb=%p\n", skb);
|
||||||
sch->q.qlen--;
|
sch->q.qlen--;
|
||||||
return skb;
|
return skb;
|
||||||
|
Reference in New Issue
Block a user