Pali Rohár <p...@kernel.org> writes: > Since commit 63a72284b159 ("powerpc/pci: Assign fixed PHB number based on > device-tree properties"), powerpc kernel always fallback to PCI domain > assignment from OF / Device Tree 'reg' property of the PCI controller. > > PCI code for other Linux architectures use increasing assignment of the PCI > domain for individual controllers (assign the first free number), like it > was also for powerpc prior mentioned commit. > > Upgrading powerpc kernels from LTS 4.4 version (which does not contain > mentioned commit) to new LTS versions brings a regression in domain > assignment.
I'm sorry this broke your system. But I don't really consider it a regression, the kernel provides no guarantee about the PCI domain numbering across LTS releases. Prior to the change the numbering was just based on the order the PHBs were discovered in the device tree, which is not robust. A cosmetic refactor of the device tree source could cause PHBs to be discovered in a different order. Similarly a change in firmware PCI discovery or device tree generation could cause the numbering to change. If you have scripts that are looking for certain devices they can use the vendor/device fields in sysfs to find the actual devices they want, not just whatever happens to be at 0000:01:00.0. > Fix this issue by introducing a new option CONFIG_PPC_PCI_DOMAIN_FROM_OF_REG > When this options is disabled then powerpc kernel would assign PCI domains > in the similar way like it is doing kernel for other architectures and also > how it was done prior that commit. I really don't want a config option for that. There is a device tree property "linux,pci-domain", described in Documentation/devicetree/bindings/pci/pci.txt. Can you try adding that to your device tree and updating get_phb_number() to look for it? cheers