[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:10:37 EST 2013



> -----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.

-Hongtao.



More information about the Linuxppc-dev mailing list