3.16.66-rc1 review patch. If anyone has any objections, please let me know. ------------------ From: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> commit 0255200bd29afc320c6ea4c1adf8bdc13a9b3c15 upstream. After the DMA transfer is done, we don't need to call the un-mapping code in 3 places. One is enough. Signed-off-by: Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> Signed-off-by: Vinod Koul <vkoul@xxxxxxxxxx> [bwh: Backported to 3.16 as dependency of commit 6454368a804c "dmaengine: dmatest: Abort test in case of mapping error"] Signed-off-by: Ben Hutchings <ben@xxxxxxxxxxxxxxx> --- drivers/dma/dmatest.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c @@ -638,14 +638,14 @@ static int dmatest_func(void *data) status = dma_async_is_tx_complete(chan, cookie, NULL, NULL); + dmaengine_unmap_put(um); + if (!done->done) { - dmaengine_unmap_put(um); result("test timed out", total_tests, src_off, dst_off, len, 0); failed_tests++; continue; } else if (status != DMA_COMPLETE) { - dmaengine_unmap_put(um); result(status == DMA_ERROR ? "completion error status" : "completion busy status", total_tests, src_off, @@ -654,8 +654,6 @@ static int dmatest_func(void *data) continue; } - dmaengine_unmap_put(um); - if (params->noverify) { verbose_result("test passed", total_tests, src_off, dst_off, len, 0);