Subject: Re: [PATCH RFC net] net: hibmcge: Release irq resources on error and device tear-down

From: Simon Horman <[email-masked]>
Date: Fri, 6 Dec 2024 09:15:39 +0000

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 <[email-masked]>
> > 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/[email-masked]/
> 
> 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