qed: Remove unnecessary synchronize_irq() before free_irq()
authorMinghao Chi <chi.minghao@zte.com.cn>
Mon, 16 May 2022 07:26:46 +0000 (07:26 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 17 May 2022 11:02:34 +0000 (13:02 +0200)
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.

Reported-by: Zeal Robot <zealci@zte.com.cn>
Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn>
Link: https://lore.kernel.org/r/20220516072646.1651109-1-chi.minghao@zte.com.cn
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/qlogic/qed/qed_main.c

index c5003fa1a25edfef34ca04674d30611ab2efbb88..c91898be7c030481c291f94e3d2f2c924cbdf4b0 100644 (file)
@@ -823,7 +823,6 @@ static void qed_slowpath_irq_free(struct qed_dev *cdev)
                for_each_hwfn(cdev, i) {
                        if (!cdev->hwfns[i].b_int_requested)
                                break;
-                       synchronize_irq(cdev->int_params.msix_table[i].vector);
                        free_irq(cdev->int_params.msix_table[i].vector,
                                 &cdev->hwfns[i].sp_dpc);
                }