]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
PCI: generic: Pass starting bus number to pci_scan_root_bus()
authorDavid Daney <david.daney@cavium.com>
Thu, 8 Oct 2015 15:24:41 +0000 (10:24 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 8 Oct 2015 15:24:41 +0000 (10:24 -0500)
If the bus is being configured with a bus-range that does not start at
zero, pass that starting bus number to pci_scan_root_bus().  Passing the
incorrect value of zero causes attempted config accesses outside of the
supported range, which cascades to an OOPs spew and eventual kernel panic.

Signed-off-by: David Daney <david.daney@cavium.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Will Deacon <will.deacon@arm.com>
drivers/pci/host/pci-host-generic.c

index 2533e8da136d30545d0ef06663f2d4a4d030ecfc..895c0e39ca3b9ccbc0e4172c6ca0d6716ef2d08d 100644 (file)
@@ -251,7 +251,8 @@ static int gen_pci_probe(struct platform_device *pdev)
        if (!pci_has_flag(PCI_PROBE_ONLY))
                pci_add_flags(PCI_REASSIGN_ALL_RSRC | PCI_REASSIGN_ALL_BUS);
 
-       bus = pci_scan_root_bus(dev, 0,
+
+       bus = pci_scan_root_bus(dev, pci->cfg.bus_range->start,
                                &pci->cfg.ops->ops, pci, &pci->resources);
        if (!bus) {
                dev_err(dev, "Scanning rootbus failed");