netdev
[Top] [All Lists]

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

To: <netdev@xxxxxxxxxxx>, <linux-kernel@xxxxxxxxxxxxxxx>
Subject: [PATCH] [2.4.20] filter_list destroy fix in net/sched/sch_prio.c
From: "Dimitry V. Ketov" <Dimitry.Ketov@xxxxxxxxx>
Date: Thu, 10 Apr 2003 21:46:12 +0400
Cc: <kuznet@xxxxxxxxxxxxx>
Sender: netdev-bounce@xxxxxxxxxxx
Thread-index: AcL2BZM+86EVewkGQc+3orAwc2LBoQ==
Thread-topic: [PATCH] [2.4.20] filter_list destroy fix in net/sched/sch_prio.c
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;
 }



<Prev in Thread] Current Thread [Next in Thread>