portal = idxd_wq_portal_addr(wq);
 
-       /*
-        * The wmb() flushes writes to coherent DMA data before
-        * possibly triggering a DMA read. The wmb() is necessary
-        * even on UP because the recipient is a device.
-        */
-       wmb();
-
        /*
         * Pending the descriptor to the lockless list for the irq_entry
         * that we designated the descriptor to.
                llist_add(&desc->llnode, &ie->pending_llist);
        }
 
+       /*
+        * The wmb() flushes writes to coherent DMA data before
+        * possibly triggering a DMA read. The wmb() is necessary
+        * even on UP because the recipient is a device.
+        */
+       wmb();
+
        if (wq_dedicated(wq)) {
                iosubmit_cmds512(portal, desc->hw, 1);
        } else {