Message ID | 20200528155445.1031300-1-hws@denx.de |
---|---|
State | Accepted |
Commit | 50bb682c5cc52769e7cbd835a00dbcbc75a4f0e7 |
Delegated to: | Tom Rini |
Headers | show |
Series | tools: fw_env: Fix warning when reading too little | expand |
On Thu, May 28, 2020 at 05:54:45PM +0200, Harald Seiler wrote: > When using CONFIG_ENV_IS_IN_FAT and the config-file specifies a size > larger than what U-Boot wrote into the env-file, a confusing error > message is shown: > > $ fw_printenv > Read error on /boot/uboot.env: Success > > Fix this by showing a different error message when read returns too > little data. > > Signed-off-by: Harald Seiler <hws@denx.de> Applied to u-boot/master, thanks!
diff --git a/tools/env/fw_env.c b/tools/env/fw_env.c index 8734663cd4c7..c6378ecf34f6 100644 --- a/tools/env/fw_env.c +++ b/tools/env/fw_env.c @@ -946,11 +946,17 @@ static int flash_read_buf(int dev, int fd, void *buf, size_t count, lseek(fd, blockstart + block_seek, SEEK_SET); rc = read(fd, buf + processed, readlen); - if (rc != readlen) { + if (rc == -1) { fprintf(stderr, "Read error on %s: %s\n", DEVNAME(dev), strerror(errno)); return -1; } + if (rc != readlen) { + fprintf(stderr, "Read error on %s: " + "Attempted to read %d bytes but got %d\n", + DEVNAME(dev), readlen, rc); + return -1; + } #ifdef DEBUG fprintf(stderr, "Read 0x%x bytes at 0x%llx on %s\n", rc, (unsigned long long)blockstart + block_seek,
When using CONFIG_ENV_IS_IN_FAT and the config-file specifies a size larger than what U-Boot wrote into the env-file, a confusing error message is shown: $ fw_printenv Read error on /boot/uboot.env: Success Fix this by showing a different error message when read returns too little data. Signed-off-by: Harald Seiler <hws@denx.de> --- tools/env/fw_env.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)