Messages in this thread | | | Date | Fri, 8 Apr 2022 17:11:28 +0800 | From | Herbert Xu <> | Subject | Re: [PATCH 07/10] crypto: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN |
| |
On Fri, Apr 08, 2022 at 10:04:54AM +0100, Catalin Marinas wrote: > > My point is that if the crypto code kmallocs a size aligned to > crypto_tfm_ctx_alignment() (and CRYPTO_MINALIGN), the slab allocator > will return memory aligned to CRYPTO_MINALIGN even if > ARCH_KMALLOC_MINALIGN is smaller.
No we don't align the size to CRYPTO_MINALIGN at all. We simply assume that this is the alignment returned by kmalloc.
> Would the crypto code, say, do a kmalloc(64) and expect a 128 byte > alignment (when CRYPTO_MINALIGN == 128)? Or does it align the size to > CRYPTO_MINALIGN and do a kmalloc(128) directly? If it's the latter, I > don't think there's a problem.
It's the former.
I think you can still make the change you want, but first you need to modify the affected drivers to specify their actual alignment requirement explicitly through cra_alignmask and then use the correct methods to access the context pointer.
Basically these drivers have been broken from day one, but their brokenness has been hidden by the extra-large KMALLOC_MINALIGN value on arm. So to reduce the KMALLOC_MINALIGN value, you have to modify the drivers and set the cra_alignmask value.
Cheers, -- Email: Herbert Xu <herbert@gondor.apana.org.au> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt
| |