It is invalid when "buf_len" is not aligned with "period_len". The fix adds a check for the alignment. Signed-off-by: Kangjie Lu <kjlu@xxxxxxx> --- drivers/dma/ti/omap-dma.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/dma/ti/omap-dma.c b/drivers/dma/ti/omap-dma.c index a4a931ddf6f6..5f0ce1975e52 100644 --- a/drivers/dma/ti/omap-dma.c +++ b/drivers/dma/ti/omap-dma.c @@ -1065,6 +1065,9 @@ static struct dma_async_tx_descriptor *omap_dma_prep_dma_cyclic( unsigned es; u32 burst; + if (buf_len % period_len) + return NULL; + if (dir == DMA_DEV_TO_MEM) { dev_addr = c->cfg.src_addr; dev_width = c->cfg.src_addr_width; -- 2.17.1