Andreas Mueller wrote:
> I allways forget attachments. ;)
>
>
> ------------------------------------------------------------------------
>
> --- linux/net/sched/sch_hfsc.c~ 2006-01-15 07:16:02.000000000 +0100
> +++ linux/net/sched/sch_hfsc.c 2006-05-10 00:07:07.000000000 +0200
> @@ -970,14 +970,15 @@
> {
> struct hfsc_class *p;
> unsigned int level;
> -
> + int adj = 0;
> do {
> level = 0;
> list_for_each_entry(p, &cl->children, siblings) {
> if (p->level > level)
> level = p->level;
> + adj = 1;
> }
> - cl->level = level + 1;
> + cl->level = level + adj;
> } while ((cl = cl->cl_parent) != NULL);
> }
Nice catch, this could result in quite some undesirable behaviour.
The unconditional + 1 seems to be a thinko originating in class
addition. A slightly prettier fix would be to just change
if (p->level > level)
level = p->level
to
if (p->level >= level)
level = p->level + 1
If you send me a patch which does that and a proper Signed-off-by:
line I'll push it upstream for 2.6.17.
_______________________________________________
LARTC mailing list
[email protected]
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc