* 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;
                }
        }