* [PATCH] i40iw: Remove unnecessary synchronize_irq() before free_irq()
@ 2016-03-28 9:31 Lars-Peter Clausen
[not found] ` <1459157486-23257-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
0 siblings, 1 reply; 3+ messages in thread
From: Lars-Peter Clausen @ 2016-03-28 9:31 UTC (permalink / raw)
To: Doug Ledford
Cc: Faisal Latif, Chien Tin Tung, Mustafa Ismail, Shiraz Saleem,
Tatyana Nikolova, Sean Hefty, Hal Rosenstock,
linux-rdma-u79uwXL29TY76Z2rM5mHXA, 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:
// <smpl>
@@
expression irq;
@@
-synchronize_irq(irq);
free_irq(irq, ...);
// </smpl>
Signed-off-by: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
---
drivers/infiniband/hw/i40iw/i40iw_main.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c
index 90e5af2..006c44f 100644
--- a/drivers/infiniband/hw/i40iw/i40iw_main.c
+++ b/drivers/infiniband/hw/i40iw/i40iw_main.c
@@ -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);
}
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 3+ messages in thread[parent not found: <1459157486-23257-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>]
* Re: [PATCH] i40iw: Remove unnecessary synchronize_irq() before free_irq() [not found] ` <1459157486-23257-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org> @ 2016-03-30 7:15 ` Leon Romanovsky [not found] ` <20160330071503.GB8511-2ukJVAZIZ/Y@public.gmane.org> 0 siblings, 1 reply; 3+ messages in thread From: Leon Romanovsky @ 2016-03-30 7:15 UTC (permalink / raw) To: Lars-Peter Clausen Cc: Doug Ledford, Faisal Latif, Chien Tin Tung, Mustafa Ismail, Shiraz Saleem, Tatyana Nikolova, Sean Hefty, Hal Rosenstock, linux-rdma-u79uwXL29TY76Z2rM5mHXA On Mon, Mar 28, 2016 at 11:31:26AM +0200, Lars-Peter Clausen wrote: > 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-Qo5EllUWu/uELgA04lAiVw@public.gmane.org> Thanks Reviewed-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > --- > drivers/infiniband/hw/i40iw/i40iw_main.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c > index 90e5af2..006c44f 100644 > --- a/drivers/infiniband/hw/i40iw/i40iw_main.c > +++ b/drivers/infiniband/hw/i40iw/i40iw_main.c > @@ -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); > } > > -- > 2.1.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
[parent not found: <20160330071503.GB8511-2ukJVAZIZ/Y@public.gmane.org>]
* Re: [PATCH] i40iw: Remove unnecessary synchronize_irq() before free_irq() [not found] ` <20160330071503.GB8511-2ukJVAZIZ/Y@public.gmane.org> @ 2016-04-07 18:27 ` Faisal Latif 0 siblings, 0 replies; 3+ messages in thread From: Faisal Latif @ 2016-04-07 18:27 UTC (permalink / raw) To: Lars-Peter Clausen, Doug Ledford, Chien Tin Tung, Mustafa Ismail, Shiraz Saleem, Tatyana Nikolova, Sean Hefty, Hal Rosenstock, linux-rdma-u79uwXL29TY76Z2rM5mHXA On Wed, Mar 30, 2016 at 10:15:03AM +0300, Leon Romanovsky wrote: > On Mon, Mar 28, 2016 at 11:31:26AM +0200, Lars-Peter Clausen wrote: > > 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-Qo5EllUWu/uELgA04lAiVw@public.gmane.org> > > Thanks > Reviewed-by: Leon Romanovsky <leonro-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org> > Thanks Acked-by: Faisal Latif <faisal.latif#intel.com> > > --- > > drivers/infiniband/hw/i40iw/i40iw_main.c | 1 - > > 1 file changed, 1 deletion(-) > > > > diff --git a/drivers/infiniband/hw/i40iw/i40iw_main.c b/drivers/infiniband/hw/i40iw/i40iw_main.c > > index 90e5af2..006c44f 100644 > > --- a/drivers/infiniband/hw/i40iw/i40iw_main.c > > +++ b/drivers/infiniband/hw/i40iw/i40iw_main.c > > @@ -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); > > } > > > > -- > > 2.1.4 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2016-04-07 18:27 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-28 9:31 [PATCH] i40iw: Remove unnecessary synchronize_irq() before free_irq() Lars-Peter Clausen
[not found] ` <1459157486-23257-1-git-send-email-lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
2016-03-30 7:15 ` Leon Romanovsky
[not found] ` <20160330071503.GB8511-2ukJVAZIZ/Y@public.gmane.org>
2016-04-07 18:27 ` Faisal Latif
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox