On Tue, Nov 15, 2011 at 9:08 AM, Rolf Eike Beer <eike-kernel@xxxxxxxxx> wrote: >> Trying [v2].... >> >> >> pci: Workaround Stratus broken PCIE hierarchy >> >> Stratus systems have a hierarchy that includes a PCIE Downstream bridge >> connected to a PCIE Upstream bridge and a PCI Downstream bridge. The >> system >> boots with this wrong hierarchy into a crippled mode (USB doesn't work, >> network doesn't work ...). Avoiding the Downstream bridge check in >> only_one_child() causes all the bridges to be enumerated and the system >> to function properly. >> >> Unfortunately this hardware is currently available so we should at least >> keep it functional. >> >> [v2] >> - ddutile@xxxxxxxxxx requested drivers/pci/quirks.c code >> - matthew@xxxxxxx requested that dmi_name_in_vendors() be called only once >> with a static var check >> - added a kernel parameter to enable scanning of all PCIE devices. >> >> Signed-off-by: Prarit Bhargava <prarit@xxxxxxxxxx> >> >> diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c >> index 6f45a73..f478bd5 100644 >> --- a/drivers/pci/pci.c >> +++ b/drivers/pci/pci.c >> @@ -3589,6 +3589,9 @@ static int __init pci_setup(char *str) >> pcie_bus_config = PCIE_BUS_PERFORMANCE; >> } else if (!strncmp(str, "pcie_bus_peer2peer", 18)) { >> pcie_bus_config = PCIE_BUS_PEER2PEER; >> + } else if (!strncmp(str, "pcie_scan_all", 13)) { >> + printk(KERN_ERR HW_ERR "PCIE: Scanning all devices.\n"); >> + pcie_scan_all = 1; >> } else { >> printk(KERN_ERR "PCI: Unknown option `%s'\n", >> str); > > To scan all devices isn't an error, is it? The user has requested this, so > KERN_INFO should be enough. > > Eike Is this problem a regression? If so, what commit caused it? f07852d6442, which introduced only_one_child()? Does Windows work on this system? Is this something that could be fixed by a firmware upgrade? If so, is there a Stratus/NEC bug report? Is there a Red Hat bugzilla URL you could include? What bad things would happen if we just turned on this Stratus-specific behavior all the time on all systems? It looks like f07852d6442 is basically an optimization that makes pci_scan_slot() faster, so I assume one effect would be to slow down PCI enumeration for everybody. By how much? Bjorn -- 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