From: Patrick McHardy Date: Fri, 23 Mar 2007 18:27:04 +0000 (-0700) Subject: [NET_SCHED]: sch_netem: fix off-by-one in send time comparison X-Git-Tag: v2.6.22-rc1~1128^2~181 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=76d643cd3bd2b4a1e27e3eafee8e37be9c681792;p=linux-2.6 [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 Signed-off-by: David S. Miller --- diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index 3e1b633e8b..bc4284396f 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c @@ -286,7 +286,7 @@ static struct sk_buff *netem_dequeue(struct Qdisc *sch) /* if more time remaining? */ 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); sch->q.qlen--; return skb;