[PATCH v5 1/3] PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe.

Thippeswamy Havalige posted 3 patches 9 months, 3 weeks ago
[PATCH v5 1/3] PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe.
Posted by Thippeswamy Havalige 9 months, 3 weeks ago
The IRQ domain allocated for the PCIe controller is not freed if
resource_list_first_type returns NULL, leading to a resource leak.

This fix ensures properly cleaning up the allocated IRQ domain in the error
path.

Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
---
 drivers/pci/controller/pcie-xilinx-cpm.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/pci/controller/pcie-xilinx-cpm.c b/drivers/pci/controller/pcie-xilinx-cpm.c
index 81e8bfae53d0..660b12fc4631 100644
--- a/drivers/pci/controller/pcie-xilinx-cpm.c
+++ b/drivers/pci/controller/pcie-xilinx-cpm.c
@@ -583,8 +583,10 @@ static int xilinx_cpm_pcie_probe(struct platform_device *pdev)
 		return err;
 
 	bus = resource_list_first_type(&bridge->windows, IORESOURCE_BUS);
-	if (!bus)
+	if (!bus) {
+		xilinx_cpm_free_irq_domains(port);
 		return -ENODEV;
+	}
 
 	port->variant = of_device_get_match_data(dev);
 
-- 
2.43.0
Re: [PATCH v5 1/3] PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe.
Posted by Manivannan Sadhasivam 9 months, 2 weeks ago
On Mon, Feb 24, 2025 at 09:20:22PM +0530, Thippeswamy Havalige wrote:
> The IRQ domain allocated for the PCIe controller is not freed if
> resource_list_first_type returns NULL, leading to a resource leak.
> 
> This fix ensures properly cleaning up the allocated IRQ domain in the error
> path.
> 

Missing Fixes tag.

> Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
> ---
>  drivers/pci/controller/pcie-xilinx-cpm.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pci/controller/pcie-xilinx-cpm.c b/drivers/pci/controller/pcie-xilinx-cpm.c
> index 81e8bfae53d0..660b12fc4631 100644
> --- a/drivers/pci/controller/pcie-xilinx-cpm.c
> +++ b/drivers/pci/controller/pcie-xilinx-cpm.c
> @@ -583,8 +583,10 @@ static int xilinx_cpm_pcie_probe(struct platform_device *pdev)
>  		return err;
>  
>  	bus = resource_list_first_type(&bridge->windows, IORESOURCE_BUS);
> -	if (!bus)
> +	if (!bus) {
> +		xilinx_cpm_free_irq_domains(port);

Why can't you use existing 'err_parse_dt' label? If the reason is the name, just
change it to actual error case. Like, 'err_free_irq_domains'.

- Mani

-- 
மணிவண்ணன் சதாசிவம்
Re: [PATCH v5 1/3] PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe.
Posted by Krzysztof Wilczyński 9 months, 1 week ago
Hello,

[...]
> > The IRQ domain allocated for the PCIe controller is not freed if
> > resource_list_first_type returns NULL, leading to a resource leak.
> > 
> > This fix ensures properly cleaning up the allocated IRQ domain in the error
> > path.
> > 
> 
> Missing Fixes tag.

Done.

> > Signed-off-by: Thippeswamy Havalige <thippeswamy.havalige@amd.com>
> > ---
> >  drivers/pci/controller/pcie-xilinx-cpm.c | 4 +++-
> >  1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/drivers/pci/controller/pcie-xilinx-cpm.c b/drivers/pci/controller/pcie-xilinx-cpm.c
> > index 81e8bfae53d0..660b12fc4631 100644
> > --- a/drivers/pci/controller/pcie-xilinx-cpm.c
> > +++ b/drivers/pci/controller/pcie-xilinx-cpm.c
> > @@ -583,8 +583,10 @@ static int xilinx_cpm_pcie_probe(struct platform_device *pdev)
> >  		return err;
> >  
> >  	bus = resource_list_first_type(&bridge->windows, IORESOURCE_BUS);
> > -	if (!bus)
> > +	if (!bus) {
> > +		xilinx_cpm_free_irq_domains(port);
> 
> Why can't you use existing 'err_parse_dt' label? If the reason is the name, just
> change it to actual error case. Like, 'err_free_irq_domains'.

Done.

I took care of the review feedback and added missing "Fixes:" tag, and
changed the code to use an existing goto label.  Both changes are already
on the branch.

Thank you!

	Krzysztof