The size variable may not be always be a mulitple of
ARCH_DMA_MINALIGN and using it to flush cache leads to cache
misaligned warnings.

Therefore, round up the size to a multiple of ARCH_DMA_MINLAIGN
when allocating private data.

Signed-off-by: Faiz Abbas <faiz_ab...@ti.com>
---
 drivers/core/device.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/core/device.c b/drivers/core/device.c
index 5463d1f..96dfb21 100644
--- a/drivers/core/device.c
+++ b/drivers/core/device.c
@@ -254,6 +254,7 @@ static void *alloc_priv(int size, uint flags)
        void *priv;
 
        if (flags & DM_FLAG_ALLOC_PRIV_DMA) {
+               size = ROUND(size, ARCH_DMA_MINALIGN);
                priv = memalign(ARCH_DMA_MINALIGN, size);
                if (priv) {
                        memset(priv, '\0', size);
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to