[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