IB/core: Protect against self-requeue of a cq work item
We need to make sure that the cq work item does not run when we are destroying the cq. Unlike flush_work, cancel_work_sync protects against self-requeue of the work item (which we can do in ib_cq_poll_work). Signed-off-by: Sagi Grimberg <sagi@grimberg.me> Reviewed-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>-- Reviewed-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
871a8623d3
commit
86f46aba8d
|
@ -196,7 +196,7 @@ void ib_free_cq(struct ib_cq *cq)
|
||||||
irq_poll_disable(&cq->iop);
|
irq_poll_disable(&cq->iop);
|
||||||
break;
|
break;
|
||||||
case IB_POLL_WORKQUEUE:
|
case IB_POLL_WORKQUEUE:
|
||||||
flush_work(&cq->work);
|
cancel_work_sync(&cq->work);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
WARN_ON_ONCE(1);
|
WARN_ON_ONCE(1);
|
||||||
|
|
Loading…
Reference in New Issue