Re: [PATCH 01/10] crypto: aead - allow to allocate AEAD requests on the stack

From: 'Antoine Tenart'
Date: Thu May 03 2018 - 08:23:48 EST


Hi David,

On Wed, May 02, 2018 at 02:55:19PM +0000, David Laight wrote:
> From: Antoine Tenart
> >
> > +#define AEAD_REQUEST_ON_STACK(name, tfm) \
> > + char __##name##_desc[sizeof(struct aead_request) + \
> > + crypto_aead_reqsize(tfm)] CRYPTO_MINALIGN_ATTR; \
> > + struct aead_request *name = (void *)__##name##_desc
> > +
>
> This looks stunningly like a VLA.

I was expecting this question :) The thing is this define looks *a lot*
like the ones defined in other places in the crypto framework, such as
SKCIPHER_REQUEST_ON_STACK and AHASH_REQUEST_ON_STACK. Those haven't been
tackled down so far by the whole VLA removal so the idea was that the
same solution will apply to the 3 of them (and then I'm not really
adding a new one).

If you do have a suggestion on how to fix the 3 of them, I'll be glad to
make a patch for that, but I'm not sure there's an easy solution. And I
don't think I saw a patch on the mailing list about those defines.

Thanks,
Antoine

--
Antoine Ténart, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com