]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
dmaengine: pxa_dma: fix initial list move
authorRobert Jarzmik <robert.jarzmik@free.fr>
Mon, 21 Sep 2015 09:06:32 +0000 (11:06 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 22 Oct 2015 21:49:17 +0000 (14:49 -0700)
commit aebf5a67db8dbacbc624b9c652b81f5460b15eff upstream.

Since the commit to have an allocated list of virtual descriptors was
reverted, the pxa_dma driver is broken, as it assumes the descriptor is
placed on the allocated list upon allocation.

Fix the issue in pxa_dma by making an allocated virtual descriptor a
singleton.

Fixes: 8c8fe97b2b8a ("Revert "dmaengine: virt-dma: don't always free descriptor upon completion"")
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/dma/pxa_dma.c

index ddcbbf5cd9e94fa427ca6ec6518b6e1c539a2537..95bdbbe2a671697f3aa3ab1c2bf62dca88f6282b 100644 (file)
@@ -888,6 +888,7 @@ pxad_tx_prep(struct virt_dma_chan *vc, struct virt_dma_desc *vd,
        struct dma_async_tx_descriptor *tx;
        struct pxad_chan *chan = container_of(vc, struct pxad_chan, vc);
 
+       INIT_LIST_HEAD(&vd->node);
        tx = vchan_tx_prep(vc, vd, tx_flags);
        tx->tx_submit = pxad_tx_submit;
        dev_dbg(&chan->vc.chan.dev->device,