summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSchlaegl Manfred jun <manfred.schlaegl@gmx.at>2009-01-20 16:57:55 +0100
committerScott Wood <scottwood@freescale.com>2009-01-23 10:32:52 -0600
commit389e6620e2271096df3316917528003627db4021 (patch)
tree3df2ad95074455d1b0ccb1ff7f7459527124354f
parent6c869637fef31e66380f0ea1d49690a2e26ec0d7 (diff)
nand read.jffs2 (nand_legacy) in common/cmd_nand.c
Error with CONFIG_NAND_LEGACY in common/cmd_nand.c: With current code "nand read.jffs2s" (read and skip bad blocks) is always interpreted as "nand read.jffs2" (read and fill bad blocks with 0xff). This is because ".jffs2" is tested before ".jffs2s" and only the first two characters are compared. Correction: Test for ".jffs2s" first and compare the first 7 characters. Signed-off-by: Scott Wood <scottwood@freescale.com>
-rw-r--r--common/cmd_nand.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index a240c37b76c..3d434e8a709 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -856,13 +856,12 @@ int do_nand (cmd_tbl_t * cmdtp, int flag, int argc, char *argv[])
(u_char *) addr);
}
return ret;
- } else if (cmdtail && !strncmp (cmdtail, ".jffs2", 2))
- cmd |= NANDRW_JFFS2; /* skip bad blocks */
- else if (cmdtail && !strncmp (cmdtail, ".jffs2s", 2)) {
+ } else if (cmdtail && !strncmp (cmdtail, ".jffs2s", 7)) {
cmd |= NANDRW_JFFS2; /* skip bad blocks (on read too) */
if (cmd & NANDRW_READ)
cmd |= NANDRW_JFFS2_SKIP; /* skip bad blocks (on read too) */
- }
+ } else if (cmdtail && !strncmp (cmdtail, ".jffs2", 2))
+ cmd |= NANDRW_JFFS2; /* skip bad blocks */
#ifdef SXNI855T
/* need ".e" same as ".j" for compatibility with older units */
else if (cmdtail && !strcmp (cmdtail, ".e"))