diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index d37cf95987b64f22bf0705631886d0810bfa026c..242b8c0a3de8bfb3eea401f13067f3e05143397f 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c @@ -267,7 +267,10 @@ enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie) pr_err("%s: timeout!\n", __func__); return DMA_ERROR; } - } while (status == DMA_IN_PROGRESS); + if (status != DMA_IN_PROGRESS) + break; + cpu_relax(); + } while (1); return status; }