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

Jia Hongtao-B38951 B38951 at freescale.com
Wed Apr 10 13:14:06 EST 2013



> -----Original Message-----
> From: Wood Scott-B07421
> Sent: Wednesday, April 10, 2013 11:12 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: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

No harm at all just not necessary.
I wonder if I could add check in fsl_mpic_get_version() and remove all the
check from functions in which using fsl_mpic_get_version()?

-Hongtao.



More information about the Linuxppc-dev mailing list