On Wed, Sep 30, 2020 at 7:40 PM <chr...@rtems.org> wrote: > > From: Daniel Hellstrom <dan...@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@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel