]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commitdiff
x86/PCI: derive pcibios_last_bus from ACPI MCFG
authorJan Beulich <JBeulich@novell.com>
Wed, 23 Feb 2011 10:08:10 +0000 (10:08 +0000)
committerJesse Barnes <jbarnes@virtuousgeek.org>
Sat, 21 May 2011 16:00:35 +0000 (09:00 -0700)
On various newer Intel systems the PCI bus(ses) the non-core devices
live on aren't getting announced by ACPI except through the bus range
covered by mmconfig. At least the i7core-edac driver depends on these
devices getting detected.

Mauro, could you check whether with this change the Xeon 55xx hack in
that driver can go away altogether, and with it the bogus exporting of
pcibios_scan_specific_bus()?

Signed-off-by: Jan Beulich <jbeulich@novell.com>
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Aristeu Sergio <arozansk@redhat.com>
Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
arch/x86/pci/mmconfig-shared.c

index e282886616a0909af26bac0fec79591857e237c4..750c346ef50a4251a1a4971cee1443b3f022b13a 100644 (file)
@@ -606,6 +606,16 @@ static void __init __pci_mmcfg_init(int early)
        if (list_empty(&pci_mmcfg_list))
                return;
 
+       if (pcibios_last_bus < 0) {
+               const struct pci_mmcfg_region *cfg;
+
+               list_for_each_entry(cfg, &pci_mmcfg_list, list) {
+                       if (cfg->segment)
+                               break;
+                       pcibios_last_bus = cfg->end_bus;
+               }
+       }
+
        if (pci_mmcfg_arch_init())
                pci_probe = (pci_probe & ~PCI_PROBE_MASK) | PCI_PROBE_MMCONF;
        else {