[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#290964: unregister_netdevice: waiting for ... to become free



> can you still reproduce this bug with newer linux kernel images,
> like the linux image 2.6.12?

I haven't tested it since I figured out the reason and patched 2.6.10. The
fix is originally by someone else and for 2.6.9, I just changed a couple
of characters to make it apply cleanly to 2.6.10. Assuming this patch made
it to 2.6.1[12], they should be fine.

I'll check the status next time I happen to compile a new kernel for my
laptop - if it isn't broken, don't fix it...

The patch is below (this is against *Debian version* of 2.6.10):

diff -Nru a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
--- a/net/sched/sch_cbq.c       2004-08-22 14:33:59 +02:00
+++ b/net/sched/sch_cbq.c       2004-08-22 14:33:59 +02:00
@@ -1746,15 +1746,18 @@
        }
 }
 
-static void cbq_destroy_class(struct cbq_class *cl)
+static void cbq_destroy_class(struct Qdisc *sch, struct cbq_class *cl)
 {
+       struct cbq_sched_data *q = qdisc_priv(sch);
+
        cbq_destroy_filters(cl);
        qdisc_destroy(cl->q);
        qdisc_put_rtab(cl->R_tab);
 #ifdef CONFIG_NET_ESTIMATOR
        qdisc_kill_estimator(&cl->stats);
 #endif
-       kfree(cl);
+       if (cl != &q->link)
+               kfree(cl);
 }
 
 static void
@@ -1777,8 +1780,7 @@
 
                for (cl = q->classes[h]; cl; cl = next) {
                        next = cl->next;
-                       if (cl != &q->link)
-                               cbq_destroy_class(cl);
+                       cbq_destroy_class(sch, cl);
                }
        }
 
@@ -1799,7 +1801,7 @@
                spin_unlock_bh(&sch->dev->queue_lock);
 #endif
 
-               cbq_destroy_class(cl);
+               cbq_destroy_class(sch, cl);
        }
 }
 
@@ -2035,7 +2037,7 @@
        sch_tree_unlock(sch);
 
        if (--cl->refcnt == 0)
-               cbq_destroy_class(cl);
+               cbq_destroy_class(sch, cl);
 
        return 0;
 }

-



-- 
                 -----------------------------------------------
                | Juha Jäykkä, juolja@utu.fi			|
		| Laboratory of Theoretical Physics		|
		| Department of Physics, University of Turku	|
                | home: http://www.utu.fi/~juolja/              |
                 -----------------------------------------------

Attachment: pgpiXhpyiRCM8.pgp
Description: PGP signature


Reply to: