i40iw: Remove unnecessary synchronize_irq() before free_irq()
authorLars-Peter Clausen <lars@metafoo.de>
Mon, 28 Mar 2016 09:31:26 +0000 (11:31 +0200)
committerDoug Ledford <dledford@redhat.com>
Fri, 13 May 2016 17:47:08 +0000 (13:47 -0400)
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.

Patch was generated using the following semantic patch:
// <smpl>
@@
expression irq;
@@
-synchronize_irq(irq);
 free_irq(irq, ...);
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Reviewed-by: Leon Romanovsky <leonro@mellanox.com>
Acked-by: Faisal Latif <faisal.latif#intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/i40iw/i40iw_main.c

index 1f41b2c7333ed105e366f8ac4b77212bfbd2c79d..c963cad92f5a8eb061af74ae964e9222115e1815 100644 (file)
@@ -270,7 +270,6 @@ static void i40iw_disable_irq(struct i40iw_sc_dev *dev,
                i40iw_wr32(dev->hw, I40E_PFINT_DYN_CTLN(msix_vec->idx - 1), 0);
        else
                i40iw_wr32(dev->hw, I40E_VFINT_DYN_CTLN1(msix_vec->idx - 1), 0);
-       synchronize_irq(msix_vec->irq);
        free_irq(msix_vec->irq, dev_id);
 }