RDMA/qedr: Remove unnecessary synchronize_irq() before free_irq()
authorMinghao Chi <chi.minghao@zte.com.cn>
Fri, 13 May 2022 08:16:47 +0000 (08:16 +0000)
committerJason Gunthorpe <jgg@nvidia.com>
Tue, 17 May 2022 11:53:30 +0000 (08:53 -0300)
Calling synchronize_irq() right before free_irq() is quite useless. On one
hand the IRQ can easily fire again before free_irq() is entered, on the
other hand free_irq() itself calls synchronize_irq() internally (in a race
condition free way), before any state associated with the IRQ is freed.

Link: https://lore.kernel.org/r/20220513081647.1631141-1-chi.minghao@zte.com.cn
Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Acked-by: Michal KalderonĀ <michal.kalderon@marvell.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/qedr/main.c

index 65ce6d0f188591d34544d30fe67d59b614ec3cac..5152f10d2e6de9953522588feae005180b7dde42 100644 (file)
@@ -500,7 +500,6 @@ static void qedr_sync_free_irqs(struct qedr_dev *dev)
                if (dev->int_info.msix_cnt) {
                        idx = i * dev->num_hwfns + dev->affin_hwfn_idx;
                        vector = dev->int_info.msix[idx].vector;
-                       synchronize_irq(vector);
                        free_irq(vector, &dev->cnq_array[i]);
                }
        }