Pārlūkot izejas kodu

[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>
Thomas Graf 19 gadi atpakaļ
vecāks
revīzija
6a1b63d467
1 mainītis faili ar 4 papildinājumiem un 2 dzēšanām
  1. 4 2
      net/sched/sch_red.c

+ 4 - 2
net/sched/sch_red.c

@@ -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;
 }