]> err.no Git - linux-2.6/commitdiff
[PKT_SCHED]: RED: Dont start idle periods while already idling
authorThomas Graf <tgraf@suug.ch>
Sat, 5 Nov 2005 20:14:07 +0000 (21:14 +0100)
committerThomas Graf <tgr@axs.localdomain>
Sat, 5 Nov 2005 21:02:25 +0000 (22:02 +0100)
We should not interrupt and restart an idle period while idling already.

Signed-off-by: Thomas Graf <tgraf@suug.ch>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
net/sched/sch_red.c

index d5e934c33f96828fff20a8736b52ea56a680a897..76e8df8447d90671c714b9038ea35436cc6dac79 100644 (file)
@@ -135,7 +135,7 @@ red_dequeue(struct Qdisc* sch)
 
        skb = qdisc_dequeue_head(sch);
 
-       if (skb == NULL)
+       if (skb == NULL && !red_is_idling(&q->parms))
                red_start_of_idle_period(&q->parms);
 
        return skb;
@@ -154,7 +154,9 @@ static unsigned int red_drop(struct Qdisc* sch)
                return len;
        }
 
-       red_start_of_idle_period(&q->parms);
+       if (!red_is_idling(&q->parms))
+               red_start_of_idle_period(&q->parms);
+
        return 0;
 }