Hi Simon,

On Sun, Jul 3, 2016 at 8:40 AM, Simon Glass <s...@chromium.org> wrote:
> We should not be returning -1 as an error code. This can mask a situation
> where we run out of space adding things to the FIT. By returning the correct
> error in this case (-ENOSPC) it can be handled by the higher-level code.
>
> This may fix the error reported by Tom Van Deun here:
>
> https://www.mail-archive.com/u-boot@lists.denx.de/msg217417.html
>
> although I am not sure as I cannot actually repeat it.
>
> Signed-off-by: Simon Glass <s...@chromium.org>
> Reported-by: Tom Van Deun <tom.vand...@wapice.com>

Reviewed-by: Teddy Reed <teddy.r...@gmail.com>

> ---
>
>  tools/image-host.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/tools/image-host.c b/tools/image-host.c
> index 7effb6c..3e14fdc 100644
> --- a/tools/image-host.c
> +++ b/tools/image-host.c
> @@ -38,7 +38,7 @@ static int fit_set_hash_value(void *fit, int noffset, 
> uint8_t *value,
>                 printf("Can't set hash '%s' property for '%s' node(%s)\n",
>                        FIT_VALUE_PROP, fit_get_name(fit, noffset, NULL),
>                        fdt_strerror(ret));
> -               return -1;
> +               return ret == -FDT_ERR_NOSPACE ? -ENOSPC : -EIO;
>         }
>
>         return 0;
> @@ -64,25 +64,27 @@ static int fit_image_process_hash(void *fit, const char 
> *image_name,
>         const char *node_name;
>         int value_len;
>         char *algo;
> +       int ret;
>
>         node_name = fit_get_name(fit, noffset, NULL);
>
>         if (fit_image_hash_get_algo(fit, noffset, &algo)) {
>                 printf("Can't get hash algo property for '%s' hash node in 
> '%s' image node\n",
>                        node_name, image_name);
> -               return -1;
> +               return -ENOENT;
>         }
>
>         if (calculate_hash(data, size, algo, value, &value_len)) {
>                 printf("Unsupported hash algorithm (%s) for '%s' hash node in 
> '%s' image node\n",
>                        algo, node_name, image_name);
> -               return -1;
> +               return -EPROTONOSUPPORT;
>         }
>
> -       if (fit_set_hash_value(fit, noffset, value, value_len)) {
> +       ret = fit_set_hash_value(fit, noffset, value, value_len);
> +       if (ret) {
>                 printf("Can't set hash value for '%s' hash node in '%s' image 
> node\n",
>                        node_name, image_name);
> -               return -1;
> +               return ret;
>         }
>
>         return 0;
> @@ -322,7 +324,7 @@ int fit_image_add_verification_data(const char *keydir, 
> void *keydest,
>                                 comment, require_keys);
>                 }
>                 if (ret)
> -                       return -1;
> +                       return ret;
>         }
>
>         return 0;
> --
> 2.8.0.rc3.226.g39d4020
>
> _______________________________________________
> U-Boot mailing list
> U-Boot@lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot



-- 
Teddy Reed V
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to