[U-Boot] [PATCHv2 4/4] common/env_nand.c: calculate crc only when readenv was OK
Phil Sutter
phil.sutter at viprinet.com
Thu Feb 21 18:21:56 CET 2013
Calculating the checksum of incompletely read data is useless.
Signed-off-by: Phil Sutter <phil.sutter at viprinet.com>
---
common/env_nand.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/common/env_nand.c b/common/env_nand.c
index 60a87ec..0e1d17a 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -337,8 +337,8 @@ void env_relocate_spec(void)
puts("*** Warning - some problems detected "
"reading environment; recovered successfully\n");
- crc1_ok = crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc;
- crc2_ok = crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc;
+ crc1_ok = !read1_fail && (crc32(0, tmp_env1->data, ENV_SIZE) == tmp_env1->crc);
+ crc2_ok = !read2_fail && (crc32(0, tmp_env2->data, ENV_SIZE) == tmp_env2->crc);
if (!crc1_ok && !crc2_ok) {
set_default_env("!bad CRC");
--
1.7.3.4
More information about the U-Boot
mailing list