Messages in this thread |  | | Date | Sun, 17 Apr 2022 16:11:22 +0800 | From | Herbert Xu <> | Subject | Re: [PATCH 07/10] crypto: Use ARCH_DMA_MINALIGN instead of ARCH_KMALLOC_MINALIGN |
| |
On Fri, Apr 15, 2022 at 01:31:32PM +0100, Catalin Marinas wrote: > > This needs a clarification. For the above structure, kmalloc() will > return a 128-byte aligned pointer since sizeof(x) is a multiple of 128. > The potential problem is if you have something like: > > kmalloc(sizeof(struct x) + 64); > > The above could end up as a kmalloc(192) which is available with an > ARCH_KMALLOC_MINALIGN of 64. If that's a real use-case, I can change the > slab patch to not create the 192 (or 48 if we go for an even smaller > ARCH_KMALLOC_MINALIGN) caches and we'd always have ARCH_DMA_MINALIGN > guarantee if the structure itself is correctly aligned. No lying to the > compiler.
Yes I suppose that should work:
1) Enlarge each crypto API object so that they're >= 128 bytes; 2) Modify kmalloc so that for sizes >= 128 bytes they're padded to multiples of 128.
But it really feels like a hack.
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
|  |