[U-Boot] [PATCH 07/22] fdt: Tighten up error handling in fdtdec_get_pci_addr()

Bin Meng bmeng.cn at gmail.com
Wed Feb 25 10:29:27 CET 2015


Hi Simon,

On Thu, Feb 19, 2015 at 5:10 AM, Simon Glass <sjg at chromium.org> wrote:
> This function returns -ENOENT when the property is missing (which the caller
> might forgive) and also when the property is present but incorrectly

forgive? forget?

> formatted (which many callers would like to report).
>
> Update the error return value to allow these different situations to be
> distinguished.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
>
>  include/fdtdec.h | 4 +++-
>  lib/fdtdec.c     | 4 +++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/include/fdtdec.h b/include/fdtdec.h
> index 2a96a0a..3213895 100644
> --- a/include/fdtdec.h
> +++ b/include/fdtdec.h
> @@ -326,7 +326,9 @@ fdt_addr_t fdtdec_get_addr_size(const void *blob, int node,
>   * @param type         pci address type (FDT_PCI_SPACE_xxx)
>   * @param prop_name    name of property to find
>   * @param addr         returns pci address in the form of fdt_pci_addr
> - * @return 0 if ok, negative on error
> + * @return 0 if ok, -ENOENT if the property did not exist, -EINVAL if the
> + *             format of the property was invalid, -ENXIO if the requested
> + *             address type was not found
>   */
>  int fdtdec_get_pci_addr(const void *blob, int node, enum fdt_pci_space type,
>                 const char *prop_name, struct fdt_pci_addr *addr);
> diff --git a/lib/fdtdec.c b/lib/fdtdec.c
> index d4bc8b4..922b299 100644
> --- a/lib/fdtdec.c
> +++ b/lib/fdtdec.c
> @@ -159,8 +159,10 @@ int fdtdec_get_pci_addr(const void *blob, int node, enum fdt_pci_space type,
>                         }
>                 }
>
> -               if (i == num)
> +               if (i == num) {
> +                       ret = ENXIO;

ret = -ENXIO;

>                         goto fail;
> +               }
>
>                 return 0;
>         } else {
> --

Regards,
Bin


More information about the U-Boot mailing list