aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/dma
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2019-12-16 11:53:25 +0100
committerVinod Koul <vkoul@kernel.org>2019-12-26 10:04:18 +0530
commitb167f94d2928f3516176c8107cb698a6d9bb9911 (patch)
tree20793f06e527d6d7e741db3246a021f5e1ab1173 /drivers/dma
parentdmaengine: virt-dma: Add missing locking around list operations (diff)
downloadlinux-dev-b167f94d2928f3516176c8107cb698a6d9bb9911.tar.xz
linux-dev-b167f94d2928f3516176c8107cb698a6d9bb9911.zip
dmaengine: virt-dma: use vchan_vdesc_fini() to free descriptors
vchan_dma_desc_free_list() basically open codes vchan_vdesc_fini() in its loop body. Call it directly rather than duplicating the code. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> Reviewed-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Link: https://lore.kernel.org/r/20191216105328.15198-7-s.hauer@pengutronix.de Signed-off-by: Vinod Koul <vkoul@kernel.org>
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/virt-dma.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/dma/virt-dma.c b/drivers/dma/virt-dma.c
index 26e08c7a7465..95dfe431777e 100644
--- a/drivers/dma/virt-dma.c
+++ b/drivers/dma/virt-dma.c
@@ -115,16 +115,8 @@ void vchan_dma_desc_free_list(struct virt_dma_chan *vc, struct list_head *head)
struct virt_dma_desc *vd, *_vd;
list_for_each_entry_safe(vd, _vd, head, node) {
- if (dmaengine_desc_test_reuse(&vd->tx)) {
- unsigned long flags;
-
- spin_lock_irqsave(&vc->lock, flags);
- list_move_tail(&vd->node, &vc->desc_allocated);
- spin_unlock_irqrestore(&vc->lock, flags);
- } else {
- list_del(&vd->node);
- vc->desc_free(vd);
- }
+ list_del(&vd->node);
+ vchan_vdesc_fini(vd);
}
}
EXPORT_SYMBOL_GPL(vchan_dma_desc_free_list);