kernel: fq_codel: dont reinit flow state
[openwrt.git] / target / linux / generic / patches-3.3 / 061-fq_codel-dont-reinit-flow-state.patch
1 From b379135c40163ae79ba7a54e6928b53983e74ee8 Mon Sep 17 00:00:00 2001
2 From: Eric Dumazet <eric.dumazet@gmail.com>
3 Date: Sat, 1 Sep 2012 03:19:57 +0000
4 Subject: [PATCH 307/558] fq_codel: dont reinit flow state
5
6 When fq_codel builds a new flow, it should not reset codel state.
7
8 Codel algo needs to get previous values (lastcount, drop_next) to get
9 proper behavior.
10
11 Signed-off-by: Dave Taht <dave.taht@gmail.com>
12 Signed-off-by: Eric Dumazet <edumazet@google.com>
13 Acked-by: Dave Taht <dave.taht@bufferbloat.net>
14 Signed-off-by: David S. Miller <davem@davemloft.net>
15 ---
16  net/sched/sch_fq_codel.c |    2 +-
17  1 file changed, 1 insertion(+), 1 deletion(-)
18
19 diff --git a/net/sched/sch_fq_codel.c b/net/sched/sch_fq_codel.c
20 index 9fc1c62..4e606fc 100644
21 --- a/net/sched/sch_fq_codel.c
22 +++ b/net/sched/sch_fq_codel.c
23 @@ -191,7 +191,6 @@ static int fq_codel_enqueue(struct sk_buff *skb, struct Qdisc *sch)
24  
25         if (list_empty(&flow->flowchain)) {
26                 list_add_tail(&flow->flowchain, &q->new_flows);
27 -               codel_vars_init(&flow->cvars);
28                 q->new_flow_count++;
29                 flow->deficit = q->quantum;
30                 flow->dropped = 0;
31 @@ -418,6 +417,7 @@ static int fq_codel_init(struct Qdisc *sch, struct nlattr *opt)
32                         struct fq_codel_flow *flow = q->flows + i;
33  
34                         INIT_LIST_HEAD(&flow->flowchain);
35 +                       codel_vars_init(&flow->cvars);
36                 }
37         }
38         if (sch->limit >= 1)
39 -- 
40 1.7.9.5
41