summaryrefslogtreecommitdiffstats
path: root/drivers/soc
diff options
context:
space:
mode:
authorJules Maselbas <jmaselbas@kalray.eu>2023-07-11 11:11:22 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2023-07-26 14:20:49 +0200
commit91bc3a16b4bd3e27c9fb8322f4a2ab0d64cdbd33 (patch)
treeab3a7d198d1909c427e31a5c86959a75c7e732d4 /drivers/soc
parent1f36140598526687989447d318553dcc72d31a6c (diff)
downloadbarebox-91bc3a16b4bd3e27c9fb8322f4a2ab0d64cdbd33.tar.gz
barebox-91bc3a16b4bd3e27c9fb8322f4a2ab0d64cdbd33.tar.xz
soc: kvx: Fix memory leaks
When calling nvmem_cell_get_and_read the resulting memory must be freed. Signed-off-by: Jules Maselbas <jmaselbas@kalray.eu> Link: https://lore.barebox.org/20230711091123.19111-2-jmaselbas@kalray.eu Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/soc')
-rw-r--r--drivers/soc/kvx/kvx_socinfo.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/soc/kvx/kvx_socinfo.c b/drivers/soc/kvx/kvx_socinfo.c
index 7fcb938a54..544f5dbd37 100644
--- a/drivers/soc/kvx/kvx_socinfo.c
+++ b/drivers/soc/kvx/kvx_socinfo.c
@@ -102,6 +102,7 @@ static int kvx_read_mppa_id(struct device_node *socinfo)
ews_val = (ews_val >> 32) | (ews_val << 32);
wafer_id = (ews_val >> EWS_WAFER_ID_SHIFT) & EWS_WAFER_ID_MASK;
base38_decode(lot_id, ews_val & EWS_LOT_ID_MASK, LOT_ID_STR_LEN);
+ free(cell_val64);
cell_val32 = (u32 *) nvmem_cell_get_and_read(socinfo, "ft_fuse", 4);
if (IS_ERR(cell_val32)) {
@@ -112,6 +113,7 @@ static int kvx_read_mppa_id(struct device_node *socinfo)
ft_val = *cell_val32;
device_id = (ft_val >> FT_DEVICE_ID_SHIFT) & FT_DEVICE_ID_MASK;
base38_decode(&com_ap, (ft_val >> FT_COM_AP_SHIFT) & FT_COM_AP_MASK, 1);
+ free(cell_val32);
kvx_mppa_id = basprintf("%sA-%d%c-%03d", lot_id, wafer_id, com_ap,
device_id);