From: Bjorn Helgaas <bhelgaas@xxxxxxxxxx> Date: Tue, 18 Aug 2015 13:49:43 -0500 > [+cc Dave, Eric, Ben, sparclinux] > > On Mon, Aug 17, 2015 at 06:47:58PM +0800, Yijing Wang wrote: >> Commit d0751b98dfa3 ("PCI: Add dev->has_secondary_link to >> track downstream PCIe links")assumed root port is always >> the top device in pcie tree. But on sparc64 V245 and T2000 >> the pcie tree has no root port device in top level, the >> upstream port device is connected directly to root bus. >> So we may get NULL parent for this upstream port device. >> >> Upstream port ------ Downstream port ------PCIe-PCI bridge > > This is an unusual, possibly even illegal, PCIe topology because it > lacks a Root Port at the top of the hierarchy. From lspci output [1] > collected by Meelis, the top-level devices are: The root port is in the PCI controller on sparc64, and PCI controllers don't have actual real PCI configuration space available. I used to put dummy PCI bus nodes into the tree and do provide dummy software PCI config space methods, but that caused more harm than good. So you'll have to accomodate situations where the root port is not there in the Linux kernel PCI bus hierarchy. -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html