Subject: Re: [BUG] PCI related panic on powerpc based board with 3.10-rcX

From: Scott Wood <[email-masked]>
Date: Thu, 13 Jun 2013 11:49:17 -0500

On 06/13/2013 02:21:24 AM, Rojhalat Ibrahim wrote:
> On Wednesday 12 June 2013 16:50:26 Scott Wood wrote:
> > On 06/12/2013 03:19:30 AM, Rojhalat Ibrahim wrote:
> > > On Tuesday 11 June 2013 12:28:59 Scott Wood wrote:
> > > > Yes, I figured it was non-PCIe because the code change that you =20
> said
> > > > helped was on the non-PCIe branch of the if/else.  Generally =20
> it's
> > >
> > > good
> > >
> > > > to explicitly mention the chip you're using, though.
> > > >
> > > > fsl_setup_indirect_pci should be renamed to =20
> fsl_setup_indirect_pcie.
> > > > Your patch above should be applied, and fsl_setup_indirect_pcie
> > >
> > > should
> > >
> > > > be moved into the booke/86xx ifdef to avoid an unused function
> > >
> > > warning.
> > >
> > > > -Scott
> > >
> > > How about this patch? It uses setup_indirect_pci for the PCI case =20
> in
> > > mpc83xx_add_bridge. Additionally it adds a check in
> > > fsl_setup_indirect_pci
> > > to only use the modified read function in case of PCIe.
> >
> > If we're adding the check to fsl_setup_indirect_pci, there's no =20
> need to
> > change the 83xx call back to setup_indirect_pci.  I see that 85xx is
> > also callirng fsl_setup_indirect_pci for both; it'd be good to be
> > consistent.
> >
> > In any case, can you send a proper patch with a signoff and commit
> > message?
> >
> > -Scott
>=20
> Where is it called for 85xx? As far as I can tell =20
> fsl_setup_indirect_pci is
> called exactly once in fsl_add_bridge and nowhere else (after =20
> applying the
> proposed patch).

fsl_add_bridge() is where it's called for 85xx.

> For 83xx the decision between PCI and PCIe has already been made at
> the point where the setup function is called. So IMO it doesn't make =20
> sense
> to call fsl_setup_indirect_pci and do the check again. Moreover PCIe =20
> on 83xx
> uses a completely different set of functions.

My concern is consistency.  E.g. if 85xx is using =20
fsl_setup_indirect_pci for both, but 83xx isn't, then a developer using =20
83xx could end up breaking 85xx by introducing another PCIe dependency =20
in fsl_setup_indirect_pci.  Or an 85xx developer could put something =20
non-PCIe-related in fsl_setup_indirect_pci that 83xx would benefit from.

Alternatively, you could call it fsl_setup_indirect_pcie, and move the =20
PCIe check into fsl_add_bridge().

-Scott=