On Fri, 15 Apr 2022 at 09:52, Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> wrote: > > On Fri, Apr 15, 2022 at 09:49:12AM +0200, Ard Biesheuvel wrote: > > > > I'm not sure I understand what would go wrong if that assumption no > > longer holds. > > It's very simple, we don't do anything to the pointer returned > by kmalloc before returning it as a tfm or other object with > an alignment of CRYPTO_MINALIGN. IOW if kmalloc starts returning > pointers that are not aligned to CRYPTO_MINALIGN then we'd be > lying to the compiler. > I guess that should be fixable. GIven that this is about padding rather than alignment, we could do something like struct crypto_request { union { struct { ... fields ... }; u8 __padding[ARCH_DMA_MINALIGN]; }; void __ctx[] __align(CRYPTO_MINALIGN); }; And then hopefully, we can get rid of the padding once we fix drivers doing non-cache coherent inbound DMA into those structures.