[PATCH V4] powerpc/MPIC: Add get_version API both for internal and external use

Scott Wood scottwood at freescale.com
Wed Apr 10 13:07:35 EST 2013


On 04/09/2013 10:04:44 PM, Jia Hongtao-B38951 wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Wednesday, April 10, 2013 10:32 AM
> > To: Jia Hongtao-B38951
> > Cc: linuxppc-dev at lists.ozlabs.org; galak at kernel.crashing.org; Wood  
> Scott-
> > B07421; Li Yang-R58472; Jia Hongtao-B38951
> > Subject: Re: [PATCH V4] powerpc/MPIC: Add get_version API both for
> > internal and external use
> >
> > On 04/07/2013 09:01:54 PM, Jia Hongtao wrote:
> > > diff --git a/arch/powerpc/sysdev/mpic.c  
> b/arch/powerpc/sysdev/mpic.c
> > > index d30e6a6..48c8fae 100644
> > > --- a/arch/powerpc/sysdev/mpic.c
> > > +++ b/arch/powerpc/sysdev/mpic.c
> > > @@ -1165,10 +1165,30 @@ static struct irq_domain_ops  
> mpic_host_ops = {
> > >  	.xlate = mpic_host_xlate,
> > >  };
> > >
> > > +static u32 fsl_mpic_get_version(struct mpic *mpic) {
> > > +	u32 brr1;
> > > +
> > > +	brr1 = _mpic_read(mpic->reg_type, &mpic->thiscpuregs,
> > > +			MPIC_FSL_BRR1);
> > > +
> > > +	return brr1 & MPIC_FSL_BRR1_VER;
> > > +}
> >
> > If it's not an FSL mpic, thiscpuregs->base will be NULL.  Please  
> check
> > mpic->flags for MPIC_FSL.
> >
> > > +
> > >  /*
> > >   * Exported functions
> > >   */
> > >
> > > +u32 fsl_mpic_primary_get_version(void)
> > > +{
> > > +	struct mpic *mpic = mpic_primary;
> > > +
> > > +	if (mpic)
> > > +		return fsl_mpic_get_version(mpic);
> > > +
> > > +	return 0;
> > > +}
> >
> > ...especially since the external version doesn't check for it  
> either.
> >
> > Otherwise, this and the MSI-X patch look OK to me.
> >
> > -Scott
> 
> 
> Since all the functions including mpic_alloc() and mpic_init() do the
> check for MPIC_FSL before using fsl_mpic_get_version() I'd like to add
> check just for fsl_mpic_primary_get_version().
> 
> It will be like this:
> u32 fsl_mpic_primary_get_version(void)
> {
>         struct mpic *mpic = mpic_primary;
> 
>         if (mpic && (mpic->flags & MPIC_FSL))
>                 return fsl_mpic_get_version(mpic);
> 
>         return 0;
> }
> 
> Could we reach an agreement here?

Is there any particular reason?  It would be more robust and more  
consistent if the check were done in fsl_mpic_get_version().

-Scott


More information about the Linuxppc-dev mailing list