spi: sh-msiof: Fix leaking of unused DMA descriptors
authorGeert Uytterhoeven <geert+renesas@glider.be>
Wed, 6 Aug 2014 12:59:03 +0000 (14:59 +0200)
committerSimon Horman <horms@verge.net.au>
Fri, 5 Dec 2014 00:24:23 +0000 (09:24 +0900)
commit332b940b8533bc072d91f8bdd32e0391caab74a3
tree93ba0bd48cb8e23eec67098a737813b9bfc270fa
parent2d58156fa0f1d804be49725cb0c8204cf9283022
spi: sh-msiof: Fix leaking of unused DMA descriptors

If dmaengine_prep_slave_sg() or dmaengine_submit() fail, we may leak
unused DMA descriptors.

As per Documentation/dmaengine.txt, once a DMA descriptor has been
obtained, it must be submitted. Hence:
  - First prepare and submit all DMA descriptors,
  - Prepare the SPI controller for DMA,
  - Start DMA by calling dma_async_issue_pending(),
  - Make sure to call dmaengine_terminate_all() on all descriptors that
    haven't completed.

Reported-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Mark Brown <broonie@linaro.org>
(cherry picked from commit 3e81b59208fa4697c6c3b6eefb92892b47f8b1e7)
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
drivers/spi/spi-sh-msiof.c