dmaengine: dmatest: prevent using swiotlb buffer with nobounce parameter
authorAmelie Delaunay <amelie.delaunay@foss.st.com>
Fri, 24 Nov 2023 16:02:35 +0000 (17:02 +0100)
committerVinod Koul <vkoul@kernel.org>
Mon, 11 Dec 2023 14:45:27 +0000 (20:15 +0530)
commit70f008fb3ea9bd2e6727eebc858405acd49a212b
treef6848c784996f57cadd2918c3f7326a1192ab9cc
parent25b636225a0816eac20b02fcb37daf6c722d0bed
dmaengine: dmatest: prevent using swiotlb buffer with nobounce parameter

Source and destination data buffers are allocated with GPF_KERNEL flag.
It means that, if the DDR is more than 2GB, buffers can be allocated above
the 32-bit addressable space. In this case, and if the dma controller is
only 32-bit compatible, swiotlb bounce buffer, located in the 32-bit
addressable space, is used and introduces a memcpy.

To prevent this extra memcpy, due to swiotlb bounce buffer use because
source or destination data buffer is allocated above the 32-bit addressable
space, force source and destination data buffers allocation with GPF_DMA
instead, when nobounce parameter is true.

Signed-off-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Link: https://lore.kernel.org/r/20231124160235.2459326-1-amelie.delaunay@foss.st.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/dmatest.c