aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick McHardy <kaber@trash.net>2007-03-23 14:27:04 -0400
committerDavid S. Miller <davem@sunset.davemloft.net>2007-04-26 01:27:47 -0400
commit76d643cd3bd2b4a1e27e3eafee8e37be9c681792 (patch)
treede8ede0c0700755caf16ca9d3dc4dba06075984d
parentc7bf5f9dc2f78ae8ebbfffc5f17becd0d9e6ba9e (diff)
[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>
-rw-r--r--net/sched/sch_netem.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
index 3e1b633e8b0d..bc4284396fcb 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)
286 /* if more time remaining? */ 286 /* if more time remaining? */
287 PSCHED_GET_TIME(now); 287 PSCHED_GET_TIME(now);
288 288
289 if (PSCHED_TLESS(cb->time_to_send, now)) { 289 if (!PSCHED_TLESS(now, cb->time_to_send)) {
290 pr_debug("netem_dequeue: return skb=%p\n", skb); 290 pr_debug("netem_dequeue: return skb=%p\n", skb);
291 sch->q.qlen--; 291 sch->q.qlen--;
292 return skb; 292 return skb;