[PATCH 3/3] net: octeontx: Free allocated memory on error

Andrew Goodbody andrew.goodbody at linaro.org
Tue Aug 5 17:45:49 CEST 2025


In octeontx_smi_probe if an error is detected then memory that was
allocated is not freed. Small refactor of the code to use a common
return and free memory. Also return -ENOMEM for an allocation failure.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
 drivers/net/octeontx/smi.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/net/octeontx/smi.c b/drivers/net/octeontx/smi.c
index 233c26f7319..217bcac2ce2 100644
--- a/drivers/net/octeontx/smi.c
+++ b/drivers/net/octeontx/smi.c
@@ -338,7 +338,8 @@ int octeontx_smi_probe(struct udevice *dev)
 		if (!bus || !priv) {
 			printf("Failed to allocate OcteonTX MDIO bus # %u\n",
 			       dev_seq(dev));
-			return -1;
+			ret = -ENOMEM;
+			goto error_ret;
 		}
 
 		bus->read = octeontx_phy_read;
@@ -355,9 +356,16 @@ int octeontx_smi_probe(struct udevice *dev)
 
 		ret = mdio_register(bus);
 		if (ret)
-			return ret;
+			goto error_ret;
 	}
 	return 0;
+
+error_ret:
+	if (bus)
+		free(bus);
+	if (priv)
+		free(priv);
+	return ret;
 }
 
 static const struct udevice_id octeontx_smi_ids[] = {

-- 
2.39.5



More information about the U-Boot mailing list