OSDN Git Service

dmaengine: sirf: fix a typo in moving running dma_desc to active queue
authorBarry Song <Baohua.Song@csr.com>
Thu, 27 Sep 2012 08:36:10 +0000 (16:36 +0800)
committerVinod Koul <vinod.koul@linux.intel.com>
Wed, 24 Oct 2012 11:00:38 +0000 (16:30 +0530)
list_move_tail(&schan->queued, &schan->active) makes the list_empty(schan->queued)
undefined, we either should change it to:
list_move_tail(schan->queued.next, &schan->active)
or
list_move_tail(&sdesc->node, &schan->active)

Signed-off-by: Barry Song <Baohua.Song@csr.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@linux.intel.com>
drivers/dma/sirf-dma.c

index 649fd6c..d451caa 100644 (file)
@@ -109,7 +109,7 @@ static void sirfsoc_dma_execute(struct sirfsoc_dma_chan *schan)
        sdesc = list_first_entry(&schan->queued, struct sirfsoc_dma_desc,
                node);
        /* Move the first queued descriptor to active list */
-       list_move_tail(&schan->queued, &schan->active);
+       list_move_tail(&sdesc->node, &schan->active);
 
        /* Start the DMA transfer */
        writel_relaxed(sdesc->width, sdma->base + SIRFSOC_DMA_WIDTH_0 +