diff options
Diffstat (limited to 'common/env_nand.c')
| -rw-r--r-- | common/env_nand.c | 26 | 
1 files changed, 12 insertions, 14 deletions
| diff --git a/common/env_nand.c b/common/env_nand.c index 47d9848ac..a5e103831 100644 --- a/common/env_nand.c +++ b/common/env_nand.c @@ -299,23 +299,21 @@ int get_nand_env_oob(nand_info_t *nand, unsigned long *result)  	ops.oobbuf = (void *) oob_buf;  	ret = nand->read_oob(nand, ENV_OFFSET_SIZE, &ops); +	if (ret) { +		printf("error reading OOB block 0\n"); +		return ret; +	} -	if (!ret) { -		if (oob_buf[0] == ENV_OOB_MARKER) { -			*result = oob_buf[1] * nand->erasesize; -		} else if (oob_buf[0] == ENV_OOB_MARKER_OLD) { -			*result = oob_buf[1]; -		} else { -			printf("No dynamic environment marker in OOB block 0" -									"\n"); -			ret = -ENOENT; -			goto fail; -		} +	if (oob_buf[0] == ENV_OOB_MARKER) { +		*result = oob_buf[1] * nand->erasesize; +	} else if (oob_buf[0] == ENV_OOB_MARKER_OLD) { +		*result = oob_buf[1];  	} else { -		printf("error reading OOB block 0\n"); +		printf("No dynamic environment marker in OOB block 0\n"); +		return -ENOENT;  	} -fail: -	return ret; + +	return 0;  }  #endif |