From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lars-Peter Clausen Subject: [PATCH resend 2/2] mpt3sas: Remove unnecessary synchronize_irq() before free_irq() Date: Tue, 2 Feb 2016 21:02:28 +0100 Message-ID: <1454443348-12783-2-git-send-email-lars@metafoo.de> References: <1454443348-12783-1-git-send-email-lars@metafoo.de> Return-path: Received: from smtp-out-195.synserver.de ([212.40.185.195]:1139 "EHLO smtp-out-195.synserver.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754985AbcBCMEO (ORCPT ); Wed, 3 Feb 2016 07:04:14 -0500 In-Reply-To: <1454443348-12783-1-git-send-email-lars@metafoo.de> Sender: linux-scsi-owner@vger.kernel.org List-Id: linux-scsi@vger.kernel.org To: "James E.J. Bottomley" , "Martin K. Petersen" Cc: Jayamohan Kallickal , Ketan Mukadam , John Soni Jose , Nagalakshmi Nandigama , Praveen Krishnamoorthy , Sreekanth Reddy , Abhijit Mahajan , linux-scsi@vger.kernel.org, MPT-FusionLinux.pdl@avagotech.com, Lars-Peter Clausen 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: // @@ expression irq; @@ -synchronize_irq(irq); free_irq(irq, ...); // Signed-off-by: Lars-Peter Clausen --- drivers/scsi/mpt3sas/mpt3sas_base.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c index 83658ac..72f71e2 100644 --- a/drivers/scsi/mpt3sas/mpt3sas_base.c +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c @@ -1799,7 +1799,6 @@ _base_free_irq(struct MPT3SAS_ADAPTER *ioc) list_del(&reply_q->list); 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); } -- 2.1.4