[U-Boot] [PATCH] env_nand: return error when no device is found
Mike Frysinger
vapier at gentoo.org
Thu Aug 12 05:42:26 CEST 2010
Currently, if there is an error probing the NAND chip and the env is based
in NAND, the readenv() function will use a NULL function pointer and thus
jump to address 0.
Here I just check for a non-zero value of blocksize as that shouldn't be
zero when a valid device is found, but perhaps there is a better way for
someone familiar with the NAND internals to suggest.
Signed-off-by: Mike Frysinger <vapier at gentoo.org>
---
common/env_nand.c | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/common/env_nand.c b/common/env_nand.c
index a5e1038..d38bcca 100644
--- a/common/env_nand.c
+++ b/common/env_nand.c
@@ -266,6 +266,8 @@ int readenv (size_t offset, u_char * buf)
u_char *char_ptr;
blocksize = nand_info[0].erasesize;
+ if (!blocksize)
+ return 1;
len = min(blocksize, CONFIG_ENV_SIZE);
while (amount_loaded < CONFIG_ENV_SIZE && offset < end) {
--
1.7.2
More information about the U-Boot
mailing list