Merge branch 'fixes' into next
authorVinod Koul <vkoul@kernel.org>
Wed, 21 Jul 2021 04:23:59 +0000 (09:53 +0530)
committerVinod Koul <vkoul@kernel.org>
Wed, 21 Jul 2021 04:26:15 +0000 (09:56 +0530)
Signed-off-by: Vinod Koul <vkoul@kernel.org>
1  2 
drivers/dma/idxd/idxd.h
drivers/dma/idxd/irq.c
drivers/dma/idxd/submit.c

Simple merge
Simple merge
@@@ -99,6 -162,16 +154,16 @@@ int idxd_submit_desc(struct idxd_wq *wq
         * even on UP because the recipient is a device.
         */
        wmb();
 -              ie = &idxd->irq_entries[desc->vector];
+       /*
+        * Pending the descriptor to the lockless list for the irq_entry
+        * that we designated the descriptor to.
+        */
+       if (desc->hw->flags & IDXD_OP_FLAG_RCI) {
++              ie = &idxd->irq_entries[wq->id + 1];
+               llist_add(&desc->llnode, &ie->pending_llist);
+       }
        if (wq_dedicated(wq)) {
                iosubmit_cmds512(portal, desc->hw, 1);
        } else {
                 */
                rc = enqcmds(portal, desc->hw);
                if (rc < 0) {
 +                      percpu_ref_put(&wq->wq_active);
+                       if (ie)
+                               llist_abort_desc(wq, ie, desc);
                        return rc;
                }
        }