aboutsummaryrefslogtreecommitdiffstats
path: root/net/sched/sch_red.c
diff options
context:
space:
mode:
authorThomas Graf <tgraf@suug.ch>2005-11-05 15:14:07 -0500
committerThomas Graf <tgr@axs.localdomain>2005-11-05 16:02:25 -0500
commit6a1b63d467281eb6bd64aafbbf6130a1b42c8c2e (patch)
tree7137eda1a0d3ca6d6e6538cb0d2fb177b97bfb7f /net/sched/sch_red.c
parent9e178ff27cd9187babe86dc80ef766b722c88da6 (diff)
[PKT_SCHED]: RED: Dont start idle periods while already idling
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>
Diffstat (limited to 'net/sched/sch_red.c')
-rw-r--r--net/sched/sch_red.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/net/sched/sch_red.c b/net/sched/sch_red.c
index d5e934c33f96..76e8df8447d9 100644
--- a/net/sched/sch_red.c
+++ b/net/sched/sch_red.c
@@ -135,7 +135,7 @@ red_dequeue(struct Qdisc* sch)
135 135
136 skb = qdisc_dequeue_head(sch); 136 skb = qdisc_dequeue_head(sch);
137 137
138 if (skb == NULL) 138 if (skb == NULL && !red_is_idling(&q->parms))
139 red_start_of_idle_period(&q->parms); 139 red_start_of_idle_period(&q->parms);
140 140
141 return skb; 141 return skb;
@@ -154,7 +154,9 @@ static unsigned int red_drop(struct Qdisc* sch)
154 return len; 154 return len;
155 } 155 }
156 156
157 red_start_of_idle_period(&q->parms); 157 if (!red_is_idling(&q->parms))
158 red_start_of_idle_period(&q->parms);
159
158 return 0; 160 return 0;
159} 161}
160 162