[PATCH v2] bus: mvebu-mbus: Avoid setting an undefined window size

Thomas Petazzoni thomas.petazzoni at free-electrons.com
Wed Apr 9 23:53:46 PDT 2014


Dear Jason Gunthorpe,

On Wed, 9 Apr 2014 10:20:40 -0600, Jason Gunthorpe wrote:

> > OK I just got it by adding two printk() in pci-mvebu.c. Both functions
> > mvebu_pcie_handle_iobase_change() and mvebu_pcie_handle_membase_change()
> > do pass a size which is in fact a mask (size - 1) and not the real size.
> > So the mbus is fed with an incorrect size which is off by one :
> 
> Yes, that is right. I tested my patch here and didn't see any problem,
> but I realize now that the mbus code is bailing early due to this:
> 
> kernel: mvebu_mbus: cannot add window '4:e8', conflicts with another window
> 
> Which I've never got around to fixing.. (whole other story there)
> 
> Your patch looks fine, and it obviously needs to be sequenced before
> mine. (Thomas/Jason C: how do you want to do this?)

What I can propose is that I accumulate in a branch all the patches
needed to solve the various PCIe/Mbus problems we've identified:

 * Your patch adding warnings to the mvebu-mbus driver
 * Willy's patch fixing the off-by-one on the size
 * Neil's patch fixing the MSI teardown function
 * My two patches fixing the rest of the MSI logic
 * And patches to come for the link problem, and the cutting of
   non-power-of-two BARs into power-of-two windows

This way, everybody will be able to test than in his specific
hardware situations, the patches are solving all the problems. Then I
can take care of formally submitting those patches to the relevant
maintainers, of course keeping the authorship as appropriate.

How does that sound?

Thomas
-- 
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com



More information about the linux-arm-kernel mailing list