summaryrefslogtreecommitdiffstats
path: root/drivers/misc/habanalabs/irq.c
diff options
context:
space:
mode:
authorOfir Bitton <obitton@habana.ai>2020-07-05 13:35:51 +0300
committerOded Gabbay <oded.gabbay@gmail.com>2020-07-24 20:31:37 +0300
commit5574cb2194b13de78df68cd32655ddbe619b1251 (patch)
tree06fbeb940ec1a0c8eb172743859e105b29cd72df /drivers/misc/habanalabs/irq.c
parentc83c4171933bc4ebd147efb6bbdb787b25d1907d (diff)
downloadlinux-5574cb2194b13de78df68cd32655ddbe619b1251.tar.bz2
habanalabs: Assign each CQ with its own work queue
We identified a possible race during job completion when working with a single multi-threaded work queue. In order to overcome this race we suggest using a single threaded work queue per completion queue, hence we guarantee jobs completion in order. Signed-off-by: Ofir Bitton <obitton@habana.ai> Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com> Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
Diffstat (limited to 'drivers/misc/habanalabs/irq.c')
-rw-r--r--drivers/misc/habanalabs/irq.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/misc/habanalabs/irq.c b/drivers/misc/habanalabs/irq.c
index 195a5ecba0e8..c8db717023f5 100644
--- a/drivers/misc/habanalabs/irq.c
+++ b/drivers/misc/habanalabs/irq.c
@@ -119,7 +119,7 @@ irqreturn_t hl_irq_handler_cq(int irq, void *arg)
if ((shadow_index_valid) && (!hdev->disabled)) {
job = queue->shadow_queue[hl_pi_2_offset(shadow_index)];
- queue_work(hdev->cq_wq, &job->finish_work);
+ queue_work(hdev->cq_wq[cq->cq_idx], &job->finish_work);
}
atomic_inc(&queue->ci);