]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - net/sched/sch_atm.c
net-sched: fix filter destruction in atm/hfsc qdisc destruction
[linux-2.6-omap-h63xx.git] / net / sched / sch_atm.c
index 8e5f70ba3a158b8744bf9396f515c76fd381e91c..db0e23ae85f8fb048c81e654ecbe8524fbf08f43 100644 (file)
@@ -586,9 +586,11 @@ static void atm_tc_destroy(struct Qdisc *sch)
        struct atm_flow_data *flow;
 
        pr_debug("atm_tc_destroy(sch %p,[qdisc %p])\n", sch, p);
+       for (flow = p->flows; flow; flow = flow->next)
+               tcf_destroy_chain(&flow->filter_list);
+
        /* races ? */
        while ((flow = p->flows)) {
-               tcf_destroy_chain(&flow->filter_list);
                if (flow->ref > 1)
                        printk(KERN_ERR "atm_destroy: %p->ref = %d\n", flow,
                               flow->ref);