diff options
author | Patrick McHardy <kaber@trash.net> | 2007-03-23 14:27:04 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-04-26 01:27:47 -0400 |
commit | 76d643cd3bd2b4a1e27e3eafee8e37be9c681792 (patch) | |
tree | de8ede0c0700755caf16ca9d3dc4dba06075984d | |
parent | c7bf5f9dc2f78ae8ebbfffc5f17becd0d9e6ba9e (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.c | 2 |
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; |