Re: [PATCH] sched.c

Daniel Phillips (phillips@arcor.de)
Wed, 28 Aug 2002 02:51:52 +0200


On Wednesday 28 August 2002 02:41, Andreas Dilger wrote:
> On Aug 28, 2002 02:13 +0200, Daniel Phillips wrote:
> > On Tuesday 27 August 2002 20:35, Andrew Morton wrote:
> > > Lahti Oy wrote:
> > > > - for (i = 0; i < NR_CPUS; i++)
> > > > + for (i = NR_CPUS; i; i--)
> > > > sum += cpu_rq(i)->nr_running;
> > >
> > > Off-by-one there. You'd want
> > >
> > > for (i = NR_CPUS; --i >= 0; )
> > >
> > > or something similarly foul ;)
> >
> > int i = NR_CPUS;
> >
> > while (--i)
^^^ i--
>
> Actually, I prefer the following to avoid wrap-around conditions in
> strange circumstances (i.e. if 'i' is manipulated between setting
> and the while loop):
>
> while (i-- > 0) {
> ...
> }

Hi Andreas,

If this counter goes negative you have other, much bigger problems
and you better not try to cover them up.

Daniel
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/