> Its set after grafting the parent, which is after initialization. > I think what should work is to set it in qdisc_create > instead, sch_api.c around line 490: > > + sch->parent = handle; > > if (handle == TC_H_INGRESS) { > sch->flags |= TCQ_F_INGRESS; > sch->stats_lock = &dev->ingress_lock; ... > > and remove the initialization in qdisc_graft. That would > additionally have the benefit that ingress qdiscs also have > it initialized properly.
I just sent out a patch to fix this. Sorry for the delay; my development machine oops'd in the middle of some disk I/O, and it corrupted part of the inode table...the ext3 journal application seemed to make it worse too. Rebuilt the machine, so I'm back on my feet. Anyways, I tried a few different things, and what it looks like is sch->parent will be NULL (0) for the top-level device. This is correct, and trying to mess with that screws up qdisc_graft() when unloading the qdisc. I also tried adding a TCQ_F_ROOT flag to sch->flags when classid is TC_H_ROOT, but that also screwed up unloading the qdisc. The ingress qdisc does have the parent handle set correctly, namely NULL, since it will always be the top-level qdisc on ingress sessions. Thx Patrick, -PJ Waskiewicz - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html