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@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt