[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