Re: [PATCH v10 3/4] random: introduce generic vDSO getrandom() implementation

Jason A. Donenfeld
2022-11-30T14:53:25Z

Hi Florian,

On Wed, Nov 30, 2022 at 11:44:30AM +0100, Florian Weimer wrote:
> * Jason A. Donenfeld:
>
> > diff --git a/include/vdso/datapage.h b/include/vdso/datapage.h
> > index 73eb622e7663..9ae4d76b36c7 100644
> > --- a/include/vdso/datapage.h
> > +++ b/include/vdso/datapage.h
> > @@ -109,6 +109,16 @@ struct vdso_data {
> > struct arch_vdso_data arch_data;
> > };
> >
> > +/**
> > + * struct vdso_rng_data - vdso RNG state information
> > + * @generation: a counter representing the number of RNG reseeds
> > + * @is_ready: whether the RNG is initialized
> > + */
> > +struct vdso_rng_data {
> > + unsigned long generation;
> > + bool is_ready;
> > +};
> > +
>
> I don't think you can use a type like long here. The header says this:
>
> * vdso_data will be accessed by 64 bit and compat code at the same time
> * so we should be careful before modifying this structure.
>
> So the ABI must be same for 32-bit and 64-bit mode, and long isn't.

Excellent point. The size of the type needs to be explicit. Will fix.

Jason