Re: [Bugfix] x86/PCI: Fix regression caused by commit 4d6b4e69a245

Arthur Marsh
2015-11-25T10:13:22Z

Jiang Liu wrote on 25/11/15 18:57:

> Hi Arthur,
> Thanks for reminder again!
> It's a little strange, the formal patch "[Bugfix] x86/PCI: Fix
> regression caused by commit 4d6b4e69a245" is based on the debug patch
> I sent to you at 9 November 2015.
> Could you please help to try the attached patch again?
> Thanks,
> Gerry

OK, I'm booting alright now with git diff reporting the following (just
the patch that Jiang Liu posted in the parent):

diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index 7bcf06a..6eb3c8a 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -50,18 +50,9 @@ void x86_pci_root_bus_resources(int bus, struct
list_head *resources)
if (!found)
pci_add_resource(resources, &info->busn);

- list_for_each_entry(root_res, &info->resources, list) {
- struct resource *res;
- struct resource *root;
+ list_for_each_entry(root_res, &info->resources, list)
+ pci_add_resource(resources, &root_res->res);

- res = &root_res->res;
- pci_add_resource(resources, res);
- if (res->flags & IORESOURCE_IO)
- root = &ioport_resource;
- else
- root = &iomem_resource;
- insert_resource(root, res);
- }
return;

default_resources:
diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 850d7bf..ae3fe4e 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -768,6 +768,13 @@ static void pci_acpi_root_add_resources(struct
acpi_pci_root_info *info)
else
continue;

+ /*
+ * Some legacy x86 host bridge drivers use iomem_resource and
+ * ioport_resource as default resource pool, skip it.
+ */
+ if (res == root)
+ continue;
+
conflict = insert_resource_conflict(root, res);
if (conflict) {
dev_info(&info->bridge->dev,
####

There have been at least two gcc-5 updates on this machine since
originally reporting the problem so that may have affected results.

Thanks to all for help with this.

Arthur.