diff options
author | Scott Wood <scottwood@freescale.com> | 2011-02-08 15:25:02 -0600 |
---|---|---|
committer | Scott Wood <scottwood@freescale.com> | 2011-02-08 15:25:02 -0600 |
commit | eef1d7199d4daf004cfb60914c9e1dc197e32c5d (patch) | |
tree | 18ff31768e6a0176b0a78768f0b66cbd0b6729f6 /common | |
parent | 8d4addc3c3fe1a9ea160a5a1a20a1f934ff3fe97 (diff) | |
download | u-boot-imx-eef1d7199d4daf004cfb60914c9e1dc197e32c5d.zip u-boot-imx-eef1d7199d4daf004cfb60914c9e1dc197e32c5d.tar.gz u-boot-imx-eef1d7199d4daf004cfb60914c9e1dc197e32c5d.tar.bz2 |
NAND: env: remember the flags used in the previous environment
Previously, uninitialized stack space was being referenced.
Signed-off-by: Scott Wood <scottwood@freescale.com>
Diffstat (limited to 'common')
-rw-r--r-- | common/env_nand.c | 6 |
1 files changed, 5 insertions, 1 deletions
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); |