[PATCH 1/2] env: mtd: add the missing put_mtd_device()

Shiji Yang yangshiji66 at outlook.com
Fri Jul 25 02:20:44 CEST 2025


The mtd device is got in setup_mtd_device(), we must put the mtd
device before exiting the function to update the mtd use count.
This patch fixes the following env error:

> Removing MTD device #2 (u-boot-env) with use count 1
> Error when deleting partition "u-boot-env" (-16)

Fixes: 03fb08d4aef8 ("env: Introduce support for MTD")
Signed-off-by: Shiji Yang <yangshiji66 at outlook.com>
---
 env/mtd.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/env/mtd.c b/env/mtd.c
index d7ec30e183a..ad263ed4b29 100644
--- a/env/mtd.c
+++ b/env/mtd.c
@@ -131,6 +131,8 @@ static int env_mtd_save(void)
 	puts("done\n");
 
 done:
+	put_mtd_device(mtd_env);
+
 	if (saved_buf)
 		free(saved_buf);
 
@@ -188,6 +190,8 @@ static int env_mtd_load(void)
 		gd->env_valid = ENV_VALID;
 
 out:
+	put_mtd_device(mtd_env);
+
 	free(buf);
 
 	return ret;
@@ -280,6 +284,8 @@ static int env_mtd_erase(void)
 	ret = 0;
 
 done:
+	put_mtd_device(mtd_env);
+
 	if (saved_buf)
 		free(saved_buf);
 
-- 
2.50.0



More information about the U-Boot mailing list