Patchwork [U-Boot] NAND: env: remember the flags used in the previous environment

login
register
mail settings
Submitter Scott Wood
Date Feb. 8, 2011, 9:30 p.m.
Message ID <20110208213012.GB8736@schlenkerla.am.freescale.net>
Download mbox | patch
Permalink /patch/82404/
State Accepted
Commit eef1d7199d4daf004cfb60914c9e1dc197e32c5d
Headers show

Comments

Scott Wood - Feb. 8, 2011, 9:30 p.m.
Previously, uninitialized stack space was being referenced.

Signed-off-by: Scott Wood <scottwood@freescale.com>
---
 common/env_nand.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

Patch

diff --git a/common/env_nand.c b/common/env_nand.c
index a4480cb..980425a 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -181,7 +181,10 @@  int writeenv(size_t offset, u_char *buf)
 
 	return 0;
 }
+
 #ifdef CONFIG_ENV_OFFSET_REDUND
+static unsigned char env_flags;
+
 int saveenv(void)
 {
 	env_t	env_new;
@@ -205,7 +208,7 @@  int saveenv(void)
 		return 1;
 	}
 	env_new.crc   = crc32(0, env_new.data, ENV_SIZE);
-	++env_new.flags; /* increase the serial */
+	env_new.flags = ++env_flags; /* increase the serial */
 
 	if(gd->env_valid == 1) {
 		puts("Erasing redundant NAND...\n");
@@ -399,6 +402,7 @@  void env_relocate_spec(void)
 	else
 		ep = tmp_env2;
 
+	env_flags = ep->flags;
 	env_import((char *)ep, 0);
 
 	free(tmp_env1);