On Tue, Mar 26, 2024 at 01:32:09PM +0000, John Garry wrote: > > > + u8 *p; > > > + > > > + size = ALIGN(size, ARCH_DMA_MINALIGN); > > > If this is a hisi_sas requirement, then why use ARCH_DMA_MINALIGN and not > 16B as minimum alignment? > > Or are we really talking about an arch requirement? One thing is that we should never allocate unaligned memory for anything DMA mapped, or data will be corrupted by non-coherent DMA. So ARCH_DMA_MINALIGN needs to be here. If specific hardware has further requirements we'll need to communicated it through a field or op vector.