On Thu, Feb 09, 2023 at 05:43:34PM +0800, Herbert Xu wrote: > On Thu, Feb 09, 2023 at 09:33:06AM +0000, JiaJie Ho wrote: > > > > The DMA can only support 32-bit addressing. > > So, I am copying everything in case kernel allocated memory region >32-bit for a user app. > > Does your hardware support scatter-and-gather? If so you should > at least allocate individual pages rather than one contiguous buffer. > > Then you can allocate them on-demand rather than before-hand. > > It would also be nice to not do the copy if the input you were > given was in low memory (and contiguous if your hardware doesn't > do SG). All of that is done by the DMA API, or more specifically swiotlb and does not need to be duplicated in individual drivers.