Skip to content

RFC arm: pcibios: remove pci_sys_data domain

Lorenzo Pieralisi linux-arm-kernel linux-pci 1 version New

Get series with b4
b4 am 20141030165246.GC2048@red-moon

Versions newest first

  1. v1 RFC Latest0 of 2 patches 0 repliesNew

Patches in v1 No applies recorded yet

None of the 2 patches the cover letter announces are in this archive.

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [RFC PATCH 0/2] arm: pcibios: remove pci_sys_data domain

[Dropped Anton, his email address bounces]

Quoted 7 lines · Jason Gunthorpe
Quoted 4 lines · Lorenzo Pieralisi

Code in drivers/pci/pci-mvebu.c has been changed to add a domain number to PCI resources by using the nr value coming from the setup pcibios32 callback, which may not be correct and should be considered a temporary solution waiting for review comments.

Quoted 7 lines

The intent of the string was to have the domain number so that resources in /proc/iomem can be correlated with lspci.

This would be a 'best practice' - all PCI drivers need to request resource, and the resource should be relatable back to the PCI domain... So it would be best if the domain number was available at this point in a driver's flow.

It is not available with the new approach and the generic PCI domains since the set-up hook is called before creating the pci_bus. That's why I mentioned that in the cover letter, and that's good it caught your attention.

On a side note, when the resources are parsed from DT ranges, ie in:

of_pci_get_host_bridge_resources()

the resources won't contain the domain number you are looking for here, for the records, so we'd better find an agreement sooner rather than later.

Quoted 7 lines

Review

Quoted 3 lines
(quoted diff) +1 -2
-       snprintf(pcie->mem_name, sizeof(pcie->mem_name), "PCI MEM %04x",
-                domain);
+       snprintf(pcie->mem_name, sizeof(pcie->mem_name), "PCI MEM %04x", nr);

I'm not sure what 'nr' is in this context, if it is not the domain number then I'd just drop the 0x04x entirely rather than include some nonsense number...

nr is the index (0 to nr_controllers) in struct hw_pci of the controller being set-up. For this driver it is always 0, and BTW, sys->domain was 0 too and I do not see any code that can change its value to anything other than 0, at least in the mainline kernel.

So basically I could go as far as sticking 0000 to the string given the current code. I did not drop the 0x04x entirely since I do not want to break userspace, I was tempted though, let me know if I am allowed to do that.

Thanks,
Lorenzo