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

Scott Wood scottwood at freescale.com
Wed Apr 10 13:12:00 EST 2013


On 04/09/2013 10:10:37 PM, Jia Hongtao-B38951 wrote:
> 
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Wednesday, April 10, 2013 11:08 AM
> > To: Jia Hongtao-B38951
> > Cc: Wood Scott-B07421; linuxppc-dev at lists.ozlabs.org;
> > galak at kernel.crashing.org; Li Yang-R58472
> > Subject: Re: [PATCH V4] powerpc/MPIC: Add get_version API both for
> > internal and external use
> >
> > 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
> 
> I found out that all the functions using fsl_mpic_get_version() have
> already done the check. Adding the check in fsl_mpic_get_version()  
> will
> cause duplicate check there. This is my consideration.

Does that duplicate check cause any harm?

-Scott


More information about the Linuxppc-dev mailing list