Re: [PATCH 11/13] Core Resource Allocation

Steve Wise
2006-11-17T17:25:14Z

On Fri, 2006-11-17 at 08:54 -0800, Roland Dreier wrote:
> > +static u32 next_random(u32 rand)
> > +{
> > + u32 y, ylast;
> > +
> > + y = rand;
> > + ylast = y;
> > + y = (y * 69069) & 0xffffffff;
> > + y = (y & 0x80000000) + (ylast & 0x7fffffff);
> > + if ((y & 1))
> > + y = ylast ^ (y > 1) ^ (2567483615UL);
> > + else
> > + y = ylast ^ (y > 1);
> > + y = y ^ (y >> 11);
> > + y = y ^ ((y >> 7) & 2636928640UL);
> > + y = y ^ ((y >> 15) & 4022730752UL);
> > + y = y ^ (y << 18);
> > + return y;
> > +}
>
> How about just using the kernel's random32()?
>
> I haven't read the code really so I don't understand what's being
> randomized here, but random32() should be more than good enough for a
> typical randomized algorithm().
>
> - R.

I think we can use random32() or get_random_bytes(). I need to
re-review how this algorithm works. Its randomizing the stag IDs so
they are not predictable.

Steve.