From: Christophe JAILLET Date: Sat, 29 Dec 2018 16:42:22 +0000 (+0100) Subject: octeontx2-af: Fix a resource leak in an error handling path in 'cgx_probe()' X-Git-Tag: v4.20.5~116 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=4b646199fafb59831c24fcbec015cf96cc73f2b8;p=users%2Fdwmw2%2Flinux.git octeontx2-af: Fix a resource leak in an error handling path in 'cgx_probe()' [ Upstream commit 1492623e837fe7ca6296f7f5411328307e242771 ] If an error occurs after the call to 'pci_alloc_irq_vectors()', we must call 'pci_free_irq_vectors()' in order to avoid a resource leak. The same sequence is already in place in the corresponding 'cgx_remove()' function. Fixes: 1463f382f58d ("octeontx2-af: Add support for CGX link management") Signed-off-by: Christophe JAILLET Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c index 12db256c8c9f9..ee67d1c4281dd 100644 --- a/drivers/net/ethernet/marvell/octeontx2/af/cgx.c +++ b/drivers/net/ethernet/marvell/octeontx2/af/cgx.c @@ -668,7 +668,7 @@ static int cgx_probe(struct pci_dev *pdev, const struct pci_device_id *id) if (!cgx->reg_base) { dev_err(dev, "CGX: Cannot map CSR memory space, aborting\n"); err = -ENOMEM; - goto err_release_regions; + goto err_free_irq_vectors; } nvec = CGX_NVEC; @@ -693,6 +693,8 @@ static int cgx_probe(struct pci_dev *pdev, const struct pci_device_id *id) err_release_lmac: cgx_lmac_exit(cgx); list_del(&cgx->cgx_list); +err_free_irq_vectors: + pci_free_irq_vectors(pdev); err_release_regions: pci_release_regions(pdev); err_disable_device: