From: Phil Sutter Date: Thu, 21 Feb 2013 17:21:56 +0000 (+0100) Subject: common/env_nand.c: calculate crc only when readenv was OK X-Git-Url: http://git.dujemihanovic.xyz/?a=commitdiff_plain;h=a1eac57a2001ecf86a46f520cd85ef8e9c8b3687;p=u-boot.git common/env_nand.c: calculate crc only when readenv was OK Calculating the checksum of incompletely read data is useless. Signed-off-by: Phil Sutter [scottwood@freescale.com: minor formatting fix] Signed-off-by: Scott Wood --- diff --git a/common/env_nand.c b/common/env_nand.c index 382e8aec5e..5b69889c02 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -352,8 +352,10 @@ 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");