Messages in this thread | | | Date | Tue, 22 Feb 2022 09:46:52 +0100 | From | Christoph Hellwig <> | Subject | Re: [PATCH 22/22] mtd: rawnand: Use dma_alloc_noncoherent() for dma buffer |
| |
On Sat, Feb 19, 2022 at 11:18:24AM +0000, Hyeonggon Yoo wrote: > > I think it would be better to still allocate the buffer at allocation > > time and then just transfer ownership using dma_sync_single* in the I/O > > path to avoid the GFP_ATOMIC allocation. > > This driver allocates the buffer at initialization step and maps the buffer > for DMA_TO_DEVICE and DMA_FROM_DEVICE when processing IO. > > But after making this driver to use dma_alloc_noncoherent(), remapping > dma_alloc_noncoherent()-ed buffer is strange So I just made it to allocate > the buffer in IO path.
You should not remap it. Just use dma_sync_single* to transfer ownership.
> Hmm.. for this specific case, What about allocating two buffers > for DMA_TO_DEVICE and DMA_FROM_DEVICE at initialization time?
That will work, but I don't see the benefit as you'd still need to call dma_sync_single* before and after each data transfer.
| |