]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/blobdiff - drivers/dma/virt-dma.c
x86/msr-index: Cleanup bit defines
[mirror_ubuntu-bionic-kernel.git] / drivers / dma / virt-dma.c
index e47fc9b0944f10001a7214ae2bd3f6b961848982..545e972790834018e11522ea18de1d19e43dbcd0 100644 (file)
@@ -86,7 +86,7 @@ EXPORT_SYMBOL_GPL(vchan_find_desc);
 static void vchan_complete(unsigned long arg)
 {
        struct virt_dma_chan *vc = (struct virt_dma_chan *)arg;
-       struct virt_dma_desc *vd;
+       struct virt_dma_desc *vd, *_vd;
        struct dmaengine_desc_callback cb;
        LIST_HEAD(head);
 
@@ -103,8 +103,7 @@ static void vchan_complete(unsigned long arg)
 
        dmaengine_desc_callback_invoke(&cb, NULL);
 
-       while (!list_empty(&head)) {
-               vd = list_first_entry(&head, struct virt_dma_desc, node);
+       list_for_each_entry_safe(vd, _vd, &head, node) {
                dmaengine_desc_get_callback(&vd->tx, &cb);
 
                list_del(&vd->node);
@@ -119,9 +118,9 @@ static void vchan_complete(unsigned long arg)
 
 void vchan_dma_desc_free_list(struct virt_dma_chan *vc, struct list_head *head)
 {
-       while (!list_empty(head)) {
-               struct virt_dma_desc *vd = list_first_entry(head,
-                       struct virt_dma_desc, node);
+       struct virt_dma_desc *vd, *_vd;
+
+       list_for_each_entry_safe(vd, _vd, head, node) {
                if (dmaengine_desc_test_reuse(&vd->tx)) {
                        list_move_tail(&vd->node, &vc->desc_allocated);
                } else {