[PATCH] leon,gr1553b: improve init check

Gedare Bloom gedare at rtems.org
Thu Oct 1 15:54:20 UTC 2020


On Wed, Sep 30, 2020 at 7:40 PM <chrisj at rtems.org> wrote:
>
> From: Daniel Hellstrom <daniel at gaisler.com>
>
> Check in init3 not needed since same data is already checked in init2
> stage. Adds an extra check that the APB register space is available before
> accessing it.
>
> Closes #2331
> ---
>  c/src/lib/libbsp/sparc/shared/1553/gr1553b.c | 11 ++++++++---
>  1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/c/src/lib/libbsp/sparc/shared/1553/gr1553b.c b/c/src/lib/libbsp/sparc/shared/1553/gr1553b.c
> index 2e778606ac..c05d53a4f9 100644
> --- a/c/src/lib/libbsp/sparc/shared/1553/gr1553b.c
> +++ b/c/src/lib/libbsp/sparc/shared/1553/gr1553b.c
> @@ -191,6 +191,8 @@ static int gr1553_init2(struct drvmgr_dev *dev)
>                 return DRVMGR_FAIL;
>         }
>         pnpinfo = &ambadev->info;
> +       if ( pnpinfo->apb_slv == NULL )
> +               return DRVMGR_EIO;
preferred to have { } wrapping 1-liners, but ok in BSPs.

>         regs = (struct gr1553b_regs *)pnpinfo->apb_slv->start;
>
>         /* Stop IRQ */
> @@ -227,9 +229,6 @@ static int gr1553_init3(struct drvmgr_dev *dev)
>
>         /* Get device information from AMBA PnP information */
>         ambadev = (struct amba_dev_info *)dev->businfo;
> -       if ( ambadev == NULL ) {
> -               return DRVMGR_FAIL;
> -       }
>         pnpinfo = &ambadev->info;
>         regs = (struct gr1553b_regs *)pnpinfo->apb_slv->start;
>
> @@ -257,6 +256,12 @@ static int gr1553_init3(struct drvmgr_dev *dev)
>                 gr1553_list_add(&gr1553_rt_root, feat);
>         }
>
> +       if ( priv->features == 0 ) {
> +               /* no features in HW should never happen.. an I/O error? */
> +               free(priv);
> +               return DRVMGR_EIO;
> +       }
> +
>         return DRVMGR_OK;
>  }
>
> --
> 2.24.1
>
> _______________________________________________
> devel mailing list
> devel at rtems.org
> http://lists.rtems.org/mailman/listinfo/devel


More information about the devel mailing list