Messages in this thread Patch in this message | | | From | Robert Jarzmik <> | Subject | [PATCH] dmaengine: virt-dma: fix completion list manipulation | Date | Mon, 2 Mar 2015 22:19:56 +0100 |
| |
When a transfer is completed, the descriptor is moved from issued list to completed list. Fix the list manipulation, from list_add to list_move_tail.
The bug was seen with a multiple descriptors issued and completed lists, where the issued list chaining was corrupted.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr> --- drivers/dma/virt-dma.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/dma/virt-dma.h b/drivers/dma/virt-dma.h index 3772032..2a3da22 100644 --- a/drivers/dma/virt-dma.h +++ b/drivers/dma/virt-dma.h @@ -91,7 +91,7 @@ static inline void vchan_cookie_complete(struct virt_dma_desc *vd) dma_cookie_complete(&vd->tx); dev_vdbg(vc->chan.device->dev, "txd %p[%x]: marked complete\n", vd, cookie); - list_add_tail(&vd->node, &vc->desc_completed); + list_move_tail(&vd->node, &vc->desc_completed); tasklet_schedule(&vc->task); } -- 2.1.0
| |