summaryrefslogtreecommitdiff
path: root/drivers/dma
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dma')
-rw-r--r--drivers/dma/idxd/submit.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/dma/idxd/submit.c b/drivers/dma/idxd/submit.c
index d4688f369bc2..df02c5c814e7 100644
--- a/drivers/dma/idxd/submit.c
+++ b/drivers/dma/idxd/submit.c
@@ -21,15 +21,6 @@ static struct idxd_desc *__get_desc(struct idxd_wq *wq, int idx, int cpu)
if (device_pasid_enabled(idxd))
desc->hw->pasid = idxd->pasid;
- /*
- * On host, MSIX vecotr 0 is used for misc interrupt. Therefore when we match
- * vector 1:1 to the WQ id, we need to add 1
- */
- if (wq->ie->int_handle == INVALID_INT_HANDLE)
- desc->hw->int_handle = wq->id + 1;
- else
- desc->hw->int_handle = wq->ie->int_handle;
-
return desc;
}
@@ -160,6 +151,11 @@ int idxd_submit_desc(struct idxd_wq *wq, struct idxd_desc *desc)
*/
if (desc->hw->flags & IDXD_OP_FLAG_RCI) {
ie = wq->ie;
+ if (ie->int_handle == INVALID_INT_HANDLE)
+ desc->hw->int_handle = ie->id;
+ else
+ desc->hw->int_handle = ie->int_handle;
+
llist_add(&desc->llnode, &ie->pending_llist);
}