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

From: Arthur Marsh
Date: Tue Nov 24 2015 - 19:33:24 EST


Keith Busch wrote on 25/11/15 09:34:
On Tue, Nov 24, 2015 at 11:19:34PM +0100, Rafael J. Wysocki wrote:
Quite frankly, I'm more likely to revert the offending commit at this
point as that's not the only regression reported against it and the
fix only helps in one case (out of three known to me).

Using 4.4-rc1 and can confirm the patch fixes my regression report. The
revert also fixes it, so either way is good for me!


To re-cap, all was fine for me until:

4d6b4e69a245e9df4b84dba387596086cb66887d is the first bad commit
commit 4d6b4e69a245e9df4b84dba387596086cb66887d
Author: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Date: Wed Oct 14 14:29:41 2015 +0800

x86/PCI/ACPI: Use common interface to support PCI host bridge

Use common interface to simplify ACPI PCI host bridge implementation.

Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>
Reviewed-by: Hanjun Guo <hanjun.guo@xxxxxxxxxx>
Acked-by: Bjorn Helgaas <bhelgaas@xxxxxxxxxx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

:040000 040000 a3447eea376b5a3e6f57deb35cf064c5481b45e3 f64d8e49fd87b776933dfa3dfefcb33509004d3f M arch

From the boot-up I get the message as shown in the images at: http://www.users.on.net/~arthur.marsh/20151107601.jpg and
http://www.users.on.net/~arthur.marsh/20151107602.jpg

The boot-up suggests trying rebooting with pci=alloc but that didn't help.

The errors shown include
"BAR 0: trying firmware assignment [io size 0x0020]"
"BAR 0: [io size 0x0020] conflicts with PCI Bus #00 [io 0x0000-0xffff]
"BAR 0: failed to assign [io size 0x0020]

Applying the following patch on top of the patch above from 14 October 2015 worked for me:


From 02818ba34bfa76d93f2a29c85660da0323b0b457 Mon Sep 17 00:00:00 2001
From: Liu Jiang <jiang.liu@xxxxxxxxxxxxxxx>
Date: Mon, 9 Nov 2015 13:36:48 +0800
Subject: [PATCH]


Signed-off-by: Liu Jiang <jiang.liu@xxxxxxxxxxxxxxx>
---
arch/x86/pci/bus_numa.c | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index 7bcf06a7cd12..022d83158cdb 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -51,6 +51,8 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
pci_add_resource(resources, &info->busn);

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

@@ -61,6 +63,7 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
else
root = &iomem_resource;
insert_resource(root, res);
+#endif
}
return;

###

The patch postd by Jian Liu on 16 November 2015 "[Bugfix] x86/PCI: Fix regression caused by commit 4d6b4e69a245" had *not* been seen or tested by me before being posted to the linux-acpi list and when I did test it (after removing the patch above from 9 November 2015), things broke:
http://www.users.on.net/~arthur.marsh/20151116611.jpg

So if "commit 4d6b4e69a245e9df4b84dba387596086cb66887d
x86/PCI/ACPI: Use common interface to support PCI host bridge" stays, then the patch "16 November 2015 [Bugfix] x86/PCI: Fix regression caused by commit 4d6b4e69a245" would need to go and the patch above from 9 November 2015 would need to be accepted into the mainline for my machine to boot from the mainline code.

Arthur.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/