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

Dimitry V. Ketov (Dimitry.Ketov@avalon.ru)
Thu, 10 Apr 2003 21:46:12 +0400


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/