If dma_alloc() is really used for streaming-dma between cache-incoherent masters, it should return cache-line aligned buffers, so we don't risk invalidating shared cache lines. Bump up the default alignment to 32-bytes. This doesn't affect ARM, as it defines its own implementation with 64-byte buffers. Signed-off-by: Ahmad Fatoum <a.fatoum@xxxxxxxxxxxxxx> --- include/dma.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/include/dma.h b/include/dma.h index 1b1cb3a40796..90f9254ea80f 100644 --- a/include/dma.h +++ b/include/dma.h @@ -8,6 +8,7 @@ #include <malloc.h> #include <xfuncs.h> +#include <linux/kernel.h> #include <dma-dir.h> #include <asm/dma.h> @@ -15,10 +16,14 @@ #define DMA_ADDRESS_BROKEN NULL +#ifndef DMA_ALIGNMENT +#define DMA_ALIGNMENT 32 +#endif + #ifndef dma_alloc static inline void *dma_alloc(size_t size) { - return xmalloc(size); + return xmemalign(DMA_ALIGNMENT, ALIGN(size, DMA_ALIGNMENT)); } #endif -- 2.29.2 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox