[U-Boot] [PATCH 09/11] fpga: xilinx: Check if fpga operations are defined

Simon Glass sjg at chromium.org
Wed Jan 14 16:14:51 CET 2015


On 14 January 2015 at 01:04, Michal Simek <michal.simek at xilinx.com> wrote:
> Ensure that operations are correctly setup.
>
> Signed-off-by: Michal Simek <michal.simek at xilinx.com>

Reviewed-by: Simon Glass <sjg at chromium.org>

(comment below)

> ---
>
>  drivers/fpga/xilinx.c | 17 +++++++++++++++--
>  1 file changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/fpga/xilinx.c b/drivers/fpga/xilinx.c
> index adb4b8cd25fd..9c95148b25c1 100644
> --- a/drivers/fpga/xilinx.c
> +++ b/drivers/fpga/xilinx.c
> @@ -139,6 +139,11 @@ int xilinx_load(xilinx_desc *desc, const void *buf, size_t bsize,
>                 return FPGA_FAIL;
>         }
>
> +       if (!desc->operations || !desc->operations->load) {
> +               printf("%s: Missing load operation\n", __func__);
> +               return FPGA_FAIL;

I wonder if these error codes should be dropped in favour of the
standard ones? Perhaps in a separate patch. E.g. here we could use
-ENOSYS.

> +       }
> +
>         return desc->operations->load(desc, buf, bsize, bstype);
>  }
>
> @@ -151,8 +156,10 @@ int xilinx_loadfs(xilinx_desc *desc, const void *buf, size_t bsize,
>                 return FPGA_FAIL;
>         }
>
> -       if (!desc->operations->loadfs)
> +       if (!desc->operations || !desc->operations->loadfs) {
> +               printf("%s: Missing loadfs operation\n", __func__);
>                 return FPGA_FAIL;
> +       }
>
>         return desc->operations->loadfs(desc, buf, bsize, fpga_fsinfo);
>  }
> @@ -165,6 +172,11 @@ int xilinx_dump(xilinx_desc *desc, const void *buf, size_t bsize)
>                 return FPGA_FAIL;
>         }
>
> +       if (!desc->operations || !desc->operations->dump) {
> +               printf("%s: Missing dump operation\n", __func__);
> +               return FPGA_FAIL;
> +       }
> +
>         return desc->operations->dump(desc, buf, bsize);
>  }
>
> @@ -228,7 +240,8 @@ int xilinx_info(xilinx_desc *desc)
>
>                 if (desc->iface_fns) {
>                         printf ("Device Function Table @ 0x%p\n", desc->iface_fns);
> -                       desc->operations->info(desc);
> +                       if (desc->operations && desc->operations->info)
> +                               desc->operations->info(desc);
>                 } else
>                         printf ("No Device Function Table.\n");
>
> --
> 1.8.2.3
>

Regards,
Simon


More information about the U-Boot mailing list