[U-Boot] [PATCH] mtd: uboot: Fix hanging during mtd list command

Adam Ford aford173 at gmail.com
Mon Oct 8 18:23:06 UTC 2018


Some boards using simple NAND drivers (like omap3_logic) hang
when executing the new 'mtd list' command.  This patch enhances
the checks for conditions that would preclude mtd_probe_devices()
from operating.

Fixes: 5db66b3aee6f ("cmd: mtd: add 'mtd' command")

Signed-off-by: Adam Ford <aford173 at gmail.com>

diff --git a/drivers/mtd/mtd_uboot.c b/drivers/mtd/mtd_uboot.c
index 6a211d52ff..91a4a8a9c0 100644
--- a/drivers/mtd/mtd_uboot.c
+++ b/drivers/mtd/mtd_uboot.c
@@ -104,7 +104,14 @@ int mtd_probe_devices(void)
 	mtd_probe_uclass_mtd_devs();
 
 	/* Check if mtdparts/mtdids changed since last call, otherwise: exit */
-	if (!strcmp(mtdparts, old_mtdparts) && !strcmp(mtdids, old_mtdids))
+	if ((!mtdparts && !old_mtdparts && !mtdids && !old_mtdids) ||
+	    (mtdparts && old_mtdparts && mtdids && old_mtdids &&
+	     !strcmp(mtdparts, old_mtdparts) &&
+	     !strcmp(mtdids, old_mtdids)))
+		return 0;
+
+	/* If either mtdparts or mtdids is empty, then exit */
+	if (!mtdparts || !mtdids)
 		return 0;
 
 	/* Update the local copy of mtdparts */
-- 
2.17.1



More information about the U-Boot mailing list