mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 13:20:52 +07:00
octeontx2-af: fix memory leak of lmac and lmac->name
[ Upstream commit ac7996d680d8b4a51bb99bbdcee3dc838b985498 ]
Currently the error return paths don't kfree lmac and lmac->name
leading to some memory leaks. Fix this by adding two error return
paths that kfree these objects
Addresses-Coverity: ("Resource leak")
Fixes: 1463f382f5
("octeontx2-af: Add support for CGX link management")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Link: https://lore.kernel.org/r/20210107123916.189748-1-colin.king@canonical.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ab8e7a1af3
commit
2e7635299f
@ -862,8 +862,10 @@ static int cgx_lmac_init(struct cgx *cgx)
|
||||
if (!lmac)
|
||||
return -ENOMEM;
|
||||
lmac->name = kcalloc(1, sizeof("cgx_fwi_xxx_yyy"), GFP_KERNEL);
|
||||
if (!lmac->name)
|
||||
return -ENOMEM;
|
||||
if (!lmac->name) {
|
||||
err = -ENOMEM;
|
||||
goto err_lmac_free;
|
||||
}
|
||||
sprintf(lmac->name, "cgx_fwi_%d_%d", cgx->cgx_id, i);
|
||||
lmac->lmac_id = i;
|
||||
lmac->cgx = cgx;
|
||||
@ -874,7 +876,7 @@ static int cgx_lmac_init(struct cgx *cgx)
|
||||
CGX_LMAC_FWI + i * 9),
|
||||
cgx_fwi_event_handler, 0, lmac->name, lmac);
|
||||
if (err)
|
||||
return err;
|
||||
goto err_irq;
|
||||
|
||||
/* Enable interrupt */
|
||||
cgx_write(cgx, lmac->lmac_id, CGXX_CMRX_INT_ENA_W1S,
|
||||
@ -886,6 +888,12 @@ static int cgx_lmac_init(struct cgx *cgx)
|
||||
}
|
||||
|
||||
return cgx_lmac_verify_fwi_version(cgx);
|
||||
|
||||
err_irq:
|
||||
kfree(lmac->name);
|
||||
err_lmac_free:
|
||||
kfree(lmac);
|
||||
return err;
|
||||
}
|
||||
|
||||
static int cgx_lmac_exit(struct cgx *cgx)
|
||||
|
Loading…
Reference in New Issue
Block a user