[PATCH] [2.4.20] filter_list destroy fix in net/sched/sch_prio.c

From: Dimitry V. Ketov (Dimitry.Ketov@avalon.ru)
Date: Thu Apr 10 2003 - 12:46:12 EST


The prio qdisc does not destroy its filter list, when someone deletes
qdisc from interface without explicit filter deleting.
This patch fixes that behavior.

--- linux-2.4.20/net/sched/sch_prio.c Sat Aug 3 04:39:46 2002
+++ linux/net/sched/sch_prio.c Thu Apr 10 17:52:55 2003
@@ -158,11 +158,19 @@
 {
         int prio;
         struct prio_sched_data *q = (struct prio_sched_data *)sch->data;
+ struct tcf_proto *tp;
 
         for (prio=0; prio<q->bands; prio++) {
                 qdisc_destroy(q->queues[prio]);
                 q->queues[prio] = &noop_qdisc;
         }
+
+ while((tp = q->filter_list) != NULL)
+ {
+ q->filter_list = tp->next;
+ tp->ops->destroy(tp);
+ }
+
         MOD_DEC_USE_COUNT;
 }

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Apr 15 2003 - 22:00:21 EST