diff mbox

[U-Boot] cmd_nand: Update (nand_info_t*)nand after arg_off(_size) call

Message ID 1410871132-18599-1-git-send-email-lisovy@merica.cz
State Accepted
Delegated to: Scott Wood
Headers show

Commit Message

Rostislav Lisovy Sept. 16, 2014, 12:38 p.m. UTC
The arg_off() and arg_off_size() update the 'current NAND
device' variable (dev). This is then used when assigning the
(nand_info_t*)nand value. Place the assignment after the
arg_off(_size) calls to prevent using incorrect (nand_info_t*)
nand value.

Signed-off-by: Rostislav Lisovy <lisovy@merica.cz>
---
 common/cmd_nand.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

Comments

Tom Rini Sept. 25, 2014, 2:45 p.m. UTC | #1
On Tue, Sep 16, 2014 at 02:38:52PM +0200, Rostislav Lisovy wrote:


> The arg_off() and arg_off_size() update the 'current NAND
> device' variable (dev). This is then used when assigning the
> (nand_info_t*)nand value. Place the assignment after the
> arg_off(_size) calls to prevent using incorrect (nand_info_t*)
> nand value.
> 
> Signed-off-by: Rostislav Lisovy <lisovy@merica.cz>

Applied to u-boot/master, thanks!
diff mbox

Patch

diff --git a/common/cmd_nand.c b/common/cmd_nand.c
index f9ced9d..7f962dc 100644
--- a/common/cmd_nand.c
+++ b/common/cmd_nand.c
@@ -647,8 +647,6 @@  static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		read = strncmp(cmd, "read", 4) == 0; /* 1 = read, 0 = write */
 		printf("\nNAND %s: ", read ? "read" : "write");
 
-		nand = &nand_info[dev];
-
 		s = strchr(cmd, '.');
 
 		if (s && !strcmp(s, ".raw")) {
@@ -657,6 +655,8 @@  static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			if (arg_off(argv[3], &dev, &off, &size, &maxsize))
 				return 1;
 
+			nand = &nand_info[dev];
+
 			if (argc > 4 && !str2long(argv[4], &pagecount)) {
 				printf("'%s' is not a number\n", argv[4]);
 				return 1;
@@ -679,6 +679,8 @@  static int do_nand(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 			rwsize = size;
 		}
 
+		nand = &nand_info[dev];
+
 		if (!s || !strcmp(s, ".jffs2") ||
 		    !strcmp(s, ".e") || !strcmp(s, ".i")) {
 			if (read)