sch_sfq: use del_timer_sync() in sfq_destroy()
authorJarek Poplawski <jarkao2@gmail.com>
Tue, 29 Apr 2008 10:29:03 +0000 (03:29 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Apr 2008 10:29:03 +0000 (03:29 -0700)
Let's delete timer reliably in sfq_destroy().

Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/sched/sch_sfq.c

index a20e2ef7704beb4142dc3ee75d67604bffa10a10..f0463d757a98489f5b12138c0026d1b91742fd9d 100644 (file)
@@ -521,7 +521,8 @@ static void sfq_destroy(struct Qdisc *sch)
        struct sfq_sched_data *q = qdisc_priv(sch);
 
        tcf_destroy_chain(q->filter_list);
-       del_timer(&q->perturb_timer);
+       q->perturb_period = 0;
+       del_timer_sync(&q->perturb_timer);
 }
 
 static int sfq_dump(struct Qdisc *sch, struct sk_buff *skb)