diff options
-rw-r--r-- | net/sched/sch_netem.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c index ed0082cf8eff..82f6016d89ab 100644 --- a/net/sched/sch_netem.c +++ b/net/sched/sch_netem.c | |||
@@ -554,10 +554,13 @@ deliver: | |||
554 | } | 554 | } |
555 | p = rb_first(&q->t_root); | 555 | p = rb_first(&q->t_root); |
556 | if (p) { | 556 | if (p) { |
557 | psched_time_t time_to_send; | ||
558 | |||
557 | skb = netem_rb_to_skb(p); | 559 | skb = netem_rb_to_skb(p); |
558 | 560 | ||
559 | /* if more time remaining? */ | 561 | /* if more time remaining? */ |
560 | if (netem_skb_cb(skb)->time_to_send <= psched_get_time()) { | 562 | time_to_send = netem_skb_cb(skb)->time_to_send; |
563 | if (time_to_send <= psched_get_time()) { | ||
561 | rb_erase(p, &q->t_root); | 564 | rb_erase(p, &q->t_root); |
562 | 565 | ||
563 | sch->q.qlen--; | 566 | sch->q.qlen--; |
@@ -593,8 +596,7 @@ deliver: | |||
593 | if (skb) | 596 | if (skb) |
594 | goto deliver; | 597 | goto deliver; |
595 | } | 598 | } |
596 | qdisc_watchdog_schedule(&q->watchdog, | 599 | qdisc_watchdog_schedule(&q->watchdog, time_to_send); |
597 | netem_skb_cb(skb)->time_to_send); | ||
598 | } | 600 | } |
599 | 601 | ||
600 | if (q->qdisc) { | 602 | if (q->qdisc) { |