[PATCH v2] mkimage: Fix error message if write less data then expected

Add a new error message in case the size of data written are shorter than the one expected.
Currently, it will lead to the following error message:
"mkimage: Write error on uImage: Success"
This is not explicit when the error is because the device doesn't have enough space. Let's use a more understandable message:
"mkimage: Write only 4202432/4682240 bytes, probably no space left on the device"
Signed-off-by: Mylène Josserand mylene.josserand@collabora.com Reviewed-by: Walter Lozano walter.lozano@collabora.com ---
Changes since v1: Set the message to be more explicit and saying that it is probably a "No space left on device"
tools/mkimage.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/tools/mkimage.c b/tools/mkimage.c index d2cd1917874..7cb666d4822 100644 --- a/tools/mkimage.c +++ b/tools/mkimage.c @@ -674,7 +674,7 @@ copy_file (int ifd, const char *datafile, int pad) int zero = 0; uint8_t zeros[4096]; int offset = 0; - int size; + int size, ret; struct image_type_params *tparams = imagetool_get_type(params.type);
memset(zeros, 0, sizeof(zeros)); @@ -730,9 +730,16 @@ copy_file (int ifd, const char *datafile, int pad) }
size = sbuf.st_size - offset; - if (write(ifd, ptr + offset, size) != size) { - fprintf (stderr, "%s: Write error on %s: %s\n", - params.cmdname, params.imagefile, strerror(errno)); + + ret = write(ifd, ptr + offset, size); + if (ret != size) { + if (ret < 0) + fprintf (stderr, "%s: Write error on %s: %s\n", + params.cmdname, params.imagefile, strerror(errno)); + else if (ret < size) + fprintf (stderr, "%s: Write only %d/%d bytes, "\ + "probably no space left on the device\n", + params.cmdname, ret, size); exit (EXIT_FAILURE); }

On Wed, Jul 08, 2020 at 11:52:50AM +0200, Mylène Josserand wrote:
Add a new error message in case the size of data written are shorter than the one expected.
Currently, it will lead to the following error message:
"mkimage: Write error on uImage: Success"
This is not explicit when the error is because the device doesn't have enough space. Let's use a more understandable message:
"mkimage: Write only 4202432/4682240 bytes, probably no space left on the device"
Signed-off-by: Mylène Josserand mylene.josserand@collabora.com Reviewed-by: Walter Lozano walter.lozano@collabora.com
Applied to u-boot/master, thanks!

Hello,
On 7/17/20 10:58 PM, Tom Rini wrote:
On Wed, Jul 08, 2020 at 11:52:50AM +0200, Mylène Josserand wrote:
Add a new error message in case the size of data written are shorter than the one expected.
Currently, it will lead to the following error message:
"mkimage: Write error on uImage: Success"
This is not explicit when the error is because the device doesn't have enough space. Let's use a more understandable message:
"mkimage: Write only 4202432/4682240 bytes, probably no space left on the device"
Signed-off-by: Mylène Josserand mylene.josserand@collabora.com Reviewed-by: Walter Lozano walter.lozano@collabora.com
Applied to u-boot/master, thanks!
Great, thank you!
Best regards, Mylène
participants (3)
-
Mylene Josserand
-
Mylène Josserand
-
Tom Rini