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
  • [LARTC] tc... Eliot, Wireless and Server Administrator, Great Lakes Internet
    • Re: [... Andreas Mueller
      • R... Andreas Mueller
        • ... Patrick McHardy

Reply via email to