mpt3sas: Remove unnecessary synchronize_irq() before free_irq()
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 4 Mar 2016 10:15:07 +0000 (11:15 +0100)
committerMartin K. Petersen <martin.petersen@oracle.com>
Thu, 10 Mar 2016 01:42:47 +0000 (20:42 -0500)
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>
Acked-by: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/mpt3sas/mpt3sas_base.c

index 5bbbbf26d2f9408dc854dece1e222013a61fb497..e4db5fb3239af700ad60fdf2e21cdb35267cc861 100644 (file)
@@ -1820,7 +1820,6 @@ _base_free_irq(struct MPT3SAS_ADAPTER *ioc)
                        irq_set_affinity_hint(reply_q->vector, NULL);
                        free_cpumask_var(reply_q->affinity_hint);
                }
-               synchronize_irq(reply_q->vector);
                free_irq(reply_q->vector, reply_q);
                kfree(reply_q);
        }