[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CH0PR18MB41293954D3162904680FB6F0A1CC9@CH0PR18MB4129.namprd18.prod.outlook.com>
Date: Sun, 15 May 2022 10:12:04 +0000
From: Michal Kalderon <mkalderon@...vell.com>
To: "cgel.zte@...il.com" <cgel.zte@...il.com>
CC: Ariel Elior <aelior@...vell.com>, "jgg@...pe.ca" <jgg@...pe.ca>,
"leon@...nel.org" <leon@...nel.org>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Minghao Chi <chi.minghao@....com.cn>,
Zeal Robot <zealci@....com.cn>
Subject: RE: [EXT] [PATCH] qedr: Remove unnecessary synchronize_irq() before
free_irq()
> -----Original Message-----
> From: cgel.zte@...il.com <cgel.zte@...il.com>
> Sent: Friday, May 13, 2022 11:17 AM
> To: Michal Kalderon <mkalderon@...vell.com>
> Cc: Ariel Elior <aelior@...vell.com>; jgg@...pe.ca; leon@...nel.org; linux-
> rdma@...r.kernel.org; linux-kernel@...r.kernel.org; Minghao Chi
> <chi.minghao@....com.cn>; Zeal Robot <zealci@....com.cn>
> Subject: [EXT] [PATCH] qedr: Remove unnecessary synchronize_irq() before
> free_irq()
>
> External Email
>
> ----------------------------------------------------------------------
> From: Minghao Chi <chi.minghao@....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@....com.cn>
> Signed-off-by: Minghao Chi <chi.minghao@....com.cn>
> ---
> drivers/infiniband/hw/qedr/main.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/infiniband/hw/qedr/main.c
> b/drivers/infiniband/hw/qedr/main.c
> index 65ce6d0f1885..5152f10d2e6d 100644
> --- a/drivers/infiniband/hw/qedr/main.c
> +++ b/drivers/infiniband/hw/qedr/main.c
> @@ -500,7 +500,6 @@ static void qedr_sync_free_irqs(struct qedr_dev
> *dev)
> if (dev->int_info.msix_cnt) {
> idx = i * dev->num_hwfns + dev->affin_hwfn_idx;
> vector = dev->int_info.msix[idx].vector;
> - synchronize_irq(vector);
> free_irq(vector, &dev->cnq_array[i]);
> }
> }
> --
> 2.25.1
>
Thanks,
Acked-by: Michal Kalderon <michal.kalderon@...vell.com>
Powered by blists - more mailing lists