[PATCH 3/9] RDMA/hfi2: Stop flushing global IB workqueue
Dennis Dalessandro <[email protected]> Mon, 03 Aug 2026 12:11:07 -0400
| Newsgroups | org.kernel.vger.linux-rdma |
|---|---|
| Message-ID | <178577346720.1793053.4813622177553138915.stgit@awdrv-04> |
Flushing the global ib_wq in device specific cleanup paths is unnecessary
and potentially blocks on unrelated work items. Work items for this device
are queued on its private workqueues instead. Matches hfi1 fix
d43b1c17f9e1 ("RDMA/hfi1: Stop flushing the global IB workqueue").
Assisted-by: Claude:claude-sonnet-4-5
Signed-off-by: Dennis Dalessandro <[email protected]>
---
drivers/infiniband/hw/hfi2/init.c | 4 ----
1 file changed, 4 deletions(-)
diff --git a/drivers/infiniband/hw/hfi2/init.c b/drivers/infiniband/hw/hfi2/init.c
index 2f2b116e9c57..92cf9c55df0e 100644
--- a/drivers/infiniband/hw/hfi2/init.c
+++ b/drivers/infiniband/hw/hfi2/init.c
@@ -2536,7 +2536,6 @@ static int init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
stop_cport(dd);
hfi2_msix_clean_up_interrupts(dd);
stop_timers(dd);
- flush_workqueue(ib_wq);
for (pidx = 0; pidx < dd->num_pports; ++pidx)
dd->params->stop_port(dd->pport + pidx);
if (!ret) {
@@ -2621,9 +2620,6 @@ static void remove_one(struct pci_dev *pdev)
stop_timers(dd);
- /* wait until all of our (qsfp) queue_work() calls complete */
- flush_workqueue(ib_wq);
-
postinit_cleanup(dd);
}