[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20241206091539.GG2581@kernel.org>
Date: Fri, 6 Dec 2024 09:15:39 +0000
From: Simon Horman <horms@...nel.org>
To: Jijie Shao <shaojijie@...wei.com>
Cc: Jian Shen <shenjian15@...wei.com>, Salil Mehta <salil.mehta@...wei.com>,
Andrew Lunn <andrew+netdev@...n.ch>,
"David S. Miller" <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>,
netdev@...r.kernel.org
Subject: Re: [PATCH RFC net] net: hibmcge: Release irq resources on error and
device tear-down
On Fri, Dec 06, 2024 at 10:24:49AM +0800, Jijie Shao wrote:
>
> on 2024/12/6 4:55, Simon Horman wrote:
> > On Thu, Dec 05, 2024 at 05:05:23PM +0000, Simon Horman wrote:
> > > This patch addresses two problems related to leaked resources allocated
> > > by hbg_irq_init().
> > >
> > > 1. On error release allocated resources
> > > 2. Otherwise, release the allocated irq vector on device tear-down
> > > by setting-up a devres to do so.
> > >
> > > Found by inspection.
> > > Compile tested only.
> > >
> > > Fixes: 4d089035fa19 ("net: hibmcge: Add interrupt supported in this module")
> > > Signed-off-by: Simon Horman <horms@...nel.org>
> > Sorry for the noise, but on reflection I realise that the devm_free_irq()
> > portion of my patch, which is most of it, is not necessary as the
> > allocations are made using devm_request_irq(). And the driver seems to
> > rely on failure during init resulting in device tear-down, at which point
> > devres will take care of freeing the IRQs.
> >
> > But I don't see where the IRQ vectors are freed, either on error in
> > hbg_irq_init or device tear-down. I think the following, somewhat smaller
> > patch, would be sufficient to address that.
>
> Thank you for reviewing the code.
>
> But sorry, it's actually not needed.
>
> I discussed this with Jakub and Jonathan:
> https://lore.kernel.org/all/383f26a1-aa8f-4fd2-a00a-86abce5942ad@huawei.com/
>
> I also add a comment in code, But I'm sorry, maybe it's a little subtle.
> /* used pcim_enable_device(), so the vectors become device managed */
> ret = pci_alloc_irq_vectors(priv->pdev, HBG_VECTOR_NUM, HBG_VECTOR_NUM,
> PCI_IRQ_MSI | PCI_IRQ_MSIX);
Thanks, I missed that.
In that case I agree that this isn't needed.
--
pw-bot: rejected
Powered by blists - more mailing lists