dmaengine: zynqmp_dma: Move list_del inside zynqmp_dma_free_descriptor.
authorRafał Hibner <rafal.hibner@secom.com.pl>
Wed, 6 May 2020 10:28:45 +0000 (12:28 +0200)
committerVinod Koul <vkoul@kernel.org>
Fri, 15 May 2020 05:51:11 +0000 (11:21 +0530)
List elements are not formally removed from list during zynqmp_dma_reset.

Signed-off-by: Rafal Hibner <rafal.hibner@secom.com.pl>
Link: https://lore.kernel.org/r/20200506102844.2259-1-rafal.hibner@secom.com.pl
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/xilinx/zynqmp_dma.c

index d47749a..ff25369 100644 (file)
@@ -434,6 +434,7 @@ static void zynqmp_dma_free_descriptor(struct zynqmp_dma_chan *chan,
        struct zynqmp_dma_desc_sw *child, *next;
 
        chan->desc_free_cnt++;
+       list_del(&sdesc->node);
        list_add_tail(&sdesc->node, &chan->free_list);
        list_for_each_entry_safe(child, next, &sdesc->tx_list, node) {
                chan->desc_free_cnt++;
@@ -608,8 +609,6 @@ static void zynqmp_dma_chan_desc_cleanup(struct zynqmp_dma_chan *chan)
                dma_async_tx_callback callback;
                void *callback_param;
 
-               list_del(&desc->node);
-
                callback = desc->async_tx.callback;
                callback_param = desc->async_tx.callback_param;
                if (callback) {