Subject: Re: assertion failure at net/sched/sch_generic.c(530)

From: "David S. Miller" <[email-masked]>
Date: Tue, 23 Sep 2003 17:42:54 -0700

On Tue, 23 Sep 2003 17:44:30 -0700
David Brownell <[email-masked]> wrote:

> > Qdiscs don't get unlinked in qdisc_destroy() unless that config
> > is enabled.  If you have it off, that explains the bug and the
> > fix is obvious.
> 
> Well, obvious to people who know that part of the stack ... :)

Honest, it's a pretty simple bug :)  Try this patch:

--- net/sched/sch_generic.c.~1~	Tue Sep 23 17:52:22 2003
+++ net/sched/sch_generic.c	Tue Sep 23 17:52:28 2003
@@ -416,7 +416,6 @@
 
 	dev = qdisc->dev;
 
-#ifdef CONFIG_NET_SCHED
 	if (dev) {
 		struct Qdisc *q, **qp;
 		for (qp = &qdisc->dev->qdisc_list; (q=*qp) != NULL; qp = &q->next) {
@@ -428,7 +427,6 @@
 	}
 #ifdef CONFIG_NET_ESTIMATOR
 	qdisc_kill_estimator(&qdisc->stats);
-#endif
 #endif
 	if (ops->reset)
 		ops->reset(qdisc);