[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