[PATCH] mtd: otp: clean up on error in mtd_otp_nvmem_add()

Dan Carpenter dan.carpenter at linaro.org
Wed Jun 14 23:09:20 PDT 2023


Smatch complains that these error paths are missing cleanup:

    drivers/mtd/mtdcore.c:983 mtd_otp_nvmem_add()
    warn: missing unwind goto?

This needs to call nvmem_unregister(mtd->otp_user_nvmem) before
returning.

Fixes: 3b270fac8443 ("mtd: otp: Put factory OTP/NVRAM into the entropy pool")
Signed-off-by: Dan Carpenter <dan.carpenter at linaro.org>
---
 drivers/mtd/mtdcore.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/mtdcore.c b/drivers/mtd/mtdcore.c
index abf4cb58a8ab..ab77f8f858f0 100644
--- a/drivers/mtd/mtdcore.c
+++ b/drivers/mtd/mtdcore.c
@@ -975,12 +975,14 @@ static int mtd_otp_nvmem_add(struct mtd_info *mtd)
 			void *otp;
 
 			otp = kmalloc(size, GFP_KERNEL);
-			if (!otp)
-				return -ENOMEM;
+			if (!otp) {
+				err = -ENOMEM;
+				goto err;
+			}
 			err = mtd_nvmem_fact_otp_reg_read(mtd, 0, otp, size);
 			if (err < 0) {
 				kfree(otp);
-				return err;
+				goto err;
 			}
 			add_device_randomness(otp, err);
 			kfree(otp);
-- 
2.39.2




More information about the linux-mtd mailing list