Message ID | 20220513081622.1631073-1-chi.minghao@zte.com.cn (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | dmaengine: idxd: Remove unnecessary synchronize_irq() before free_irq() | expand |
On 5/13/2022 1:16 AM, cgel.zte@gmail.com wrote: > From: Minghao Chi <chi.minghao@zte.com.cn> > > 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. Fair enough. Thanks. Acked-by: Dave Jiang <dave.jiang@intel.com> > > Reported-by: Zeal Robot <zealci@zte.com.cn> > Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn> > --- > drivers/dma/idxd/device.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c > index 5363fb9218f2..9dd8e6bb21e6 100644 > --- a/drivers/dma/idxd/device.c > +++ b/drivers/dma/idxd/device.c > @@ -1179,7 +1179,6 @@ void idxd_wq_free_irq(struct idxd_wq *wq) > struct idxd_device *idxd = wq->idxd; > struct idxd_irq_entry *ie = &wq->ie; > > - synchronize_irq(ie->vector); > free_irq(ie->vector, ie); > idxd_flush_pending_descs(ie); > if (idxd->request_int_handles) > -- > 2.25.1 > >
On 13-05-22, 08:16, cgel.zte@gmail.com wrote: > From: Minghao Chi <chi.minghao@zte.com.cn> > > 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> where is this report...? > Signed-off-by: Minghao Chi <chi.minghao@zte.com.cn> > --- > drivers/dma/idxd/device.c | 1 - > 1 file changed, 1 deletion(-) > > diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c > index 5363fb9218f2..9dd8e6bb21e6 100644 > --- a/drivers/dma/idxd/device.c > +++ b/drivers/dma/idxd/device.c > @@ -1179,7 +1179,6 @@ void idxd_wq_free_irq(struct idxd_wq *wq) > struct idxd_device *idxd = wq->idxd; > struct idxd_irq_entry *ie = &wq->ie; > > - synchronize_irq(ie->vector); > free_irq(ie->vector, ie); > idxd_flush_pending_descs(ie); > if (idxd->request_int_handles) > -- > 2.25.1 >
diff --git a/drivers/dma/idxd/device.c b/drivers/dma/idxd/device.c index 5363fb9218f2..9dd8e6bb21e6 100644 --- a/drivers/dma/idxd/device.c +++ b/drivers/dma/idxd/device.c @@ -1179,7 +1179,6 @@ void idxd_wq_free_irq(struct idxd_wq *wq) struct idxd_device *idxd = wq->idxd; struct idxd_irq_entry *ie = &wq->ie; - synchronize_irq(ie->vector); free_irq(ie->vector, ie); idxd_flush_pending_descs(ie); if (idxd->request_int_handles)