2015-11-16 04:23:51

by Jiang Liu

[permalink] [raw]
Subject: [Bugfix] x86/PCI: Fix regression caused by commit 4d6b4e69a245

From: Liu Jiang <[email protected]>

Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
PCI host bridge") converted x86 to use the common interface
acpi_pci_root_create, but the conversion missed on code piece in
arch/x86/pci/bus_numa.c, which causes regression on some legacy
AMD platforms as reported by Arthur Marsh <[email protected]>.
The root causes is that acpi_pci_root_create() fails to insert
host bridge resources into iomem_resource/ioport_resource because
x86_pci_root_bus_resources() has already inserted those resources.
So change x86_pci_root_bus_resources() to not insert resources into
iomem_resource/ioport_resource.

Signed-off-by: Jiang Liu <[email protected]>
Reported-and-tested-by: Arthur Marsh <[email protected]>
Cc: Keith Busch <[email protected]>
Cc: Arthur Marsh <[email protected]>
---
arch/x86/pci/bus_numa.c | 16 +++-------------
drivers/acpi/pci_root.c | 7 +++++++
2 files changed, 10 insertions(+), 13 deletions(-)

diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index 7bcf06a7cd12..ce53b5b64f51 100644
--- a/arch/x86/pci/bus_numa.c
+++ b/arch/x86/pci/bus_numa.c
@@ -41,27 +41,17 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
bus);

/* already added by acpi ? */
- resource_list_for_each_entry(window, resources)
+ resource_list_for_each_entry(window, &info->resources)
if (window->res->flags & IORESOURCE_BUS) {
found = true;
break;
}
-
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 850d7bf0c873..ae3fe4e64203 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,
--
1.7.10.4


2015-11-16 07:09:10

by Arthur Marsh

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



Jiang Liu wrote on 16/11/15 14:57:
> From: Liu Jiang <[email protected]>
>
> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
> PCI host bridge") converted x86 to use the common interface
> acpi_pci_root_create, but the conversion missed on code piece in
> arch/x86/pci/bus_numa.c, which causes regression on some legacy
> AMD platforms as reported by Arthur Marsh <[email protected]>.
> The root causes is that acpi_pci_root_create() fails to insert
> host bridge resources into iomem_resource/ioport_resource because
> x86_pci_root_bus_resources() has already inserted those resources.
> So change x86_pci_root_bus_resources() to not insert resources into
> iomem_resource/ioport_resource.
>
> Signed-off-by: Jiang Liu <[email protected]>
> Reported-and-tested-by: Arthur Marsh <[email protected]>
> Cc: Keith Busch <[email protected]>
> Cc: Arthur Marsh <[email protected]>
> ---
> arch/x86/pci/bus_numa.c | 16 +++-------------
> drivers/acpi/pci_root.c | 7 +++++++
> 2 files changed, 10 insertions(+), 13 deletions(-)
>
> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
> index 7bcf06a7cd12..ce53b5b64f51 100644
> --- a/arch/x86/pci/bus_numa.c
> +++ b/arch/x86/pci/bus_numa.c
> @@ -41,27 +41,17 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
> bus);
>
> /* already added by acpi ? */
> - resource_list_for_each_entry(window, resources)
> + resource_list_for_each_entry(window, &info->resources)
> if (window->res->flags & IORESOURCE_BUS) {
> found = true;
> break;
> }
> -
> 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 850d7bf0c873..ae3fe4e64203 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,
>

I have not previously seen the patch above and have not been able to
successfully boot with it applied against the current Linus' git head.

I had booted successfully with a kernel built with the patch below from
9 November 2015, then removed the patch below and applied the patch
above from 16 November 2015, and when I booted the resulting kernel,
received a lock-up:

http://www.users.on.net/~arthur.marsh/20151116611.jpg

I'd be happy to test further patches.

Arthur.

From 02818ba34bfa76d93f2a29c85660da0323b0b457 Mon Sep 17 00:00:00 2001
From: Liu Jiang <[email protected]>
Date: Mon, 9 Nov 2015 13:36:48 +0800
Subject: [PATCH]


Signed-off-by: Liu Jiang <[email protected]>
---
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;

--
1.7.10.4

2015-11-16 22:02:23

by Hans de Bruin

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

On 11/16/2015 08:06 AM, Arthur Marsh wrote:
>
>
> Jiang Liu wrote on 16/11/15 14:57:
>> From: Liu Jiang <[email protected]>
>>
>> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
>> PCI host bridge") converted x86 to use the common interface
>> acpi_pci_root_create, but the conversion missed on code piece in
>> arch/x86/pci/bus_numa.c, which causes regression on some legacy
>> AMD platforms as reported by Arthur Marsh
>> <[email protected]>.
>> The root causes is that acpi_pci_root_create() fails to insert
>> host bridge resources into iomem_resource/ioport_resource because
>> x86_pci_root_bus_resources() has already inserted those resources.
>> So change x86_pci_root_bus_resources() to not insert resources into
>> iomem_resource/ioport_resource.
>>
>> Signed-off-by: Jiang Liu <[email protected]>
>> Reported-and-tested-by: Arthur Marsh <[email protected]>
>> Cc: Keith Busch <[email protected]>
>> Cc: Arthur Marsh <[email protected]>
>> ---
>> arch/x86/pci/bus_numa.c | 16 +++-------------
>> drivers/acpi/pci_root.c | 7 +++++++
>> 2 files changed, 10 insertions(+), 13 deletions(-)
>>
>> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
>> index 7bcf06a7cd12..ce53b5b64f51 100644
>> --- a/arch/x86/pci/bus_numa.c
>> +++ b/arch/x86/pci/bus_numa.c
>> @@ -41,27 +41,17 @@ void x86_pci_root_bus_resources(int bus, struct
>> list_head *resources)
>> bus);
>>
>> /* already added by acpi ? */
>> - resource_list_for_each_entry(window, resources)
>> + resource_list_for_each_entry(window, &info->resources)
>> if (window->res->flags & IORESOURCE_BUS) {
>> found = true;
>> break;
>> }
>> -
>> 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 850d7bf0c873..ae3fe4e64203 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,
>>
>
> I have not previously seen the patch above and have not been able to
> successfully boot with it applied against the current Linus' git head.
>
> I had booted successfully with a kernel built with the patch below from
> 9 November 2015, then removed the patch below and applied the patch
> above from 16 November 2015, and when I booted the resulting kernel,
> received a lock-up:
>

I was also struck by Commit 4d6b4e69a245. The above patch did work for
me. Attached is a bootlog from the failure.

--
Hans




Attachments:
bootlog.txt (46.42 kB)

2015-11-24 16:49:14

by Bjorn Helgaas

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

On Mon, Nov 16, 2015 at 12:27:37PM +0800, Jiang Liu wrote:
> From: Liu Jiang <[email protected]>
>
> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
> PCI host bridge") converted x86 to use the common interface
> acpi_pci_root_create, but the conversion missed on code piece in
> arch/x86/pci/bus_numa.c, which causes regression on some legacy
> AMD platforms as reported by Arthur Marsh <[email protected]>.
> The root causes is that acpi_pci_root_create() fails to insert
> host bridge resources into iomem_resource/ioport_resource because
> x86_pci_root_bus_resources() has already inserted those resources.
> So change x86_pci_root_bus_resources() to not insert resources into
> iomem_resource/ioport_resource.

Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")

> Signed-off-by: Jiang Liu <[email protected]>
> Reported-and-tested-by: Arthur Marsh <[email protected]>

What's the status of this? It looks like a regression we need to fix
for v4.4.

AFAICT, Arthur did *not* test this patch (rather, his response says he
did test it and the test failed).

4d6b4e69a245 was merged by Rafael, and I assume he'll merge the fix
unless I hear otherwise.

Bjorn

> Cc: Keith Busch <[email protected]>
> Cc: Arthur Marsh <[email protected]>
> ---
> arch/x86/pci/bus_numa.c | 16 +++-------------
> drivers/acpi/pci_root.c | 7 +++++++
> 2 files changed, 10 insertions(+), 13 deletions(-)
>
> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
> index 7bcf06a7cd12..ce53b5b64f51 100644
> --- a/arch/x86/pci/bus_numa.c
> +++ b/arch/x86/pci/bus_numa.c
> @@ -41,27 +41,17 @@ void x86_pci_root_bus_resources(int bus, struct list_head *resources)
> bus);
>
> /* already added by acpi ? */
> - resource_list_for_each_entry(window, resources)
> + resource_list_for_each_entry(window, &info->resources)
> if (window->res->flags & IORESOURCE_BUS) {
> found = true;
> break;
> }
> -
> 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 850d7bf0c873..ae3fe4e64203 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,
> --
> 1.7.10.4
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html

2015-11-24 22:19:41

by Rafael J. Wysocki

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

On Tue, Nov 24, 2015 at 5:49 PM, Bjorn Helgaas <[email protected]> wrote:
> On Mon, Nov 16, 2015 at 12:27:37PM +0800, Jiang Liu wrote:
>> From: Liu Jiang <[email protected]>
>>
>> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
>> PCI host bridge") converted x86 to use the common interface
>> acpi_pci_root_create, but the conversion missed on code piece in
>> arch/x86/pci/bus_numa.c, which causes regression on some legacy
>> AMD platforms as reported by Arthur Marsh <[email protected]>.
>> The root causes is that acpi_pci_root_create() fails to insert
>> host bridge resources into iomem_resource/ioport_resource because
>> x86_pci_root_bus_resources() has already inserted those resources.
>> So change x86_pci_root_bus_resources() to not insert resources into
>> iomem_resource/ioport_resource.
>
> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
>
>> Signed-off-by: Jiang Liu <[email protected]>
>> Reported-and-tested-by: Arthur Marsh <[email protected]>
>
> What's the status of this? It looks like a regression we need to fix
> for v4.4.
>
> AFAICT, Arthur did *not* test this patch (rather, his response says he
> did test it and the test failed).
>
> 4d6b4e69a245 was merged by Rafael, and I assume he'll merge the fix
> unless I hear otherwise.

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).

Thanks,
Rafael

2015-11-24 23:04:17

by Keith Busch

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

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!

2015-11-25 00:32:45

by Arthur Marsh

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

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 <[email protected]>
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 <[email protected]>
Reviewed-by: Hanjun Guo <[email protected]>
Acked-by: Bjorn Helgaas <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>

: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 <[email protected]>
Date: Mon, 9 Nov 2015 13:36:48 +0800
Subject: [PATCH]


Signed-off-by: Liu Jiang <[email protected]>
---
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.

2015-11-25 08:13:19

by Jiang Liu

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

On 2015/11/25 6:19, Rafael J. Wysocki wrote:
> On Tue, Nov 24, 2015 at 5:49 PM, Bjorn Helgaas <[email protected]> wrote:
>> On Mon, Nov 16, 2015 at 12:27:37PM +0800, Jiang Liu wrote:
>>> From: Liu Jiang <[email protected]>
>>>
>>> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
>>> PCI host bridge") converted x86 to use the common interface
>>> acpi_pci_root_create, but the conversion missed on code piece in
>>> arch/x86/pci/bus_numa.c, which causes regression on some legacy
>>> AMD platforms as reported by Arthur Marsh <[email protected]>.
>>> The root causes is that acpi_pci_root_create() fails to insert
>>> host bridge resources into iomem_resource/ioport_resource because
>>> x86_pci_root_bus_resources() has already inserted those resources.
>>> So change x86_pci_root_bus_resources() to not insert resources into
>>> iomem_resource/ioport_resource.
>>
>> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
>>
>>> Signed-off-by: Jiang Liu <[email protected]>
>>> Reported-and-tested-by: Arthur Marsh <[email protected]>
>>
>> What's the status of this? It looks like a regression we need to fix
>> for v4.4.
>>
>> AFAICT, Arthur did *not* test this patch (rather, his response says he
>> did test it and the test failed).
>>
>> 4d6b4e69a245 was merged by Rafael, and I assume he'll merge the fix
>> unless I hear otherwise.
>
> 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).
Hi Rafael,
I got regression report from Hans de Bruin<[email protected]>,
Keith Busch <[email protected]>, and Arthur Marsh
<[email protected]>. Hans and Keith also reports
the patch fixes the regression. For Arthur's case, the debug
patch works for him, but the formal patch based on the debug
patch fails, so I need to do more investigation about this.
Is there any other report related to commit 4d6b4e69a245 so
I could help to investigate?
Thanks,
Gerry

>
> Thanks,
> Rafael
>

2015-11-25 08:27:31

by Jiang Liu

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

On 2015/11/25 8:32, Arthur Marsh wrote:
> 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 <[email protected]>
> 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 <[email protected]>
> Reviewed-by: Hanjun Guo <[email protected]>
> Acked-by: Bjorn Helgaas <[email protected]>
> Signed-off-by: Rafael J. Wysocki <[email protected]>
>
> :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 <[email protected]>
> Date: Mon, 9 Nov 2015 13:36:48 +0800
> Subject: [PATCH]
>
>
> Signed-off-by: Liu Jiang <[email protected]>
> ---
> 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.
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

>
> Arthur.


Attachments:
0001-x86-PCI-Fix-regression-caused-by-commit-4d6b4e69a245.patch (2.47 kB)

2015-11-25 10:13:22

by Arthur Marsh

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



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.

2015-11-25 13:12:28

by Wysocki, Rafael J

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

On 11/25/2015 9:12 AM, Jiang Liu wrote:
> On 2015/11/25 6:19, Rafael J. Wysocki wrote:
>> On Tue, Nov 24, 2015 at 5:49 PM, Bjorn Helgaas <[email protected]> wrote:
>>> On Mon, Nov 16, 2015 at 12:27:37PM +0800, Jiang Liu wrote:
>>>> From: Liu Jiang <[email protected]>
>>>>
>>>> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
>>>> PCI host bridge") converted x86 to use the common interface
>>>> acpi_pci_root_create, but the conversion missed on code piece in
>>>> arch/x86/pci/bus_numa.c, which causes regression on some legacy
>>>> AMD platforms as reported by Arthur Marsh <[email protected]>.
>>>> The root causes is that acpi_pci_root_create() fails to insert
>>>> host bridge resources into iomem_resource/ioport_resource because
>>>> x86_pci_root_bus_resources() has already inserted those resources.
>>>> So change x86_pci_root_bus_resources() to not insert resources into
>>>> iomem_resource/ioport_resource.
>>> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
>>>
>>>> Signed-off-by: Jiang Liu <[email protected]>
>>>> Reported-and-tested-by: Arthur Marsh <[email protected]>
>>> What's the status of this? It looks like a regression we need to fix
>>> for v4.4.
>>>
>>> AFAICT, Arthur did *not* test this patch (rather, his response says he
>>> did test it and the test failed).
>>>
>>> 4d6b4e69a245 was merged by Rafael, and I assume he'll merge the fix
>>> unless I hear otherwise.
>> 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).
> Hi Rafael,
> I got regression report from Hans de Bruin<[email protected]>,
> Keith Busch <[email protected]>, and Arthur Marsh
> <[email protected]>. Hans and Keith also reports
> the patch fixes the regression. For Arthur's case, the debug
> patch works for him, but the formal patch based on the debug
> patch fails, so I need to do more investigation about this.
> Is there any other report related to commit 4d6b4e69a245 so
> I could help to investigate?

OK, so the proposed bug fix works for everybody, right?

In that case there's no reason not to apply it.

If there's anyone who can reproduce the problem and for whom that patch
doesn't work, please let me know.

Thanks,
Rafael

2015-11-27 03:09:04

by Jiang Liu

[permalink] [raw]
Subject: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

From: Liu Jiang <[email protected]>

Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
PCI host bridge") converted x86 to use the common interface
acpi_pci_root_create, but the conversion missed on code piece in
arch/x86/pci/bus_numa.c, which causes regression on some legacy
AMD platforms as reported by Arthur Marsh <[email protected]>.
The root causes is that acpi_pci_root_create() fails to insert
host bridge resources into iomem_resource/ioport_resource because
x86_pci_root_bus_resources() has already inserted those resources.
So change x86_pci_root_bus_resources() to not insert resources into
iomem_resource/ioport_resource.

Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
Signed-off-by: Jiang Liu <[email protected]>
Reported-and-tested-by: Arthur Marsh <[email protected]>
Cc: Keith Busch <[email protected]>
Cc: Arthur Marsh <[email protected]>
Cc: Hans de Bruin <[email protected]>
---
arch/x86/pci/bus_numa.c | 13 ++-----------
drivers/acpi/pci_root.c | 7 +++++++
2 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
index 7bcf06a7cd12..6eb3c8af96e2 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 850d7bf0c873..ae3fe4e64203 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,
--
1.7.10.4

2015-11-27 15:36:21

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On Friday, November 27, 2015 11:12:33 AM Jiang Liu wrote:
> From: Liu Jiang <[email protected]>
>
> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
> PCI host bridge") converted x86 to use the common interface
> acpi_pci_root_create, but the conversion missed on code piece in
> arch/x86/pci/bus_numa.c, which causes regression on some legacy
> AMD platforms as reported by Arthur Marsh <[email protected]>.
> The root causes is that acpi_pci_root_create() fails to insert
> host bridge resources into iomem_resource/ioport_resource because
> x86_pci_root_bus_resources() has already inserted those resources.
> So change x86_pci_root_bus_resources() to not insert resources into
> iomem_resource/ioport_resource.
>
> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
> Signed-off-by: Jiang Liu <[email protected]>
> Reported-and-tested-by: Arthur Marsh <[email protected]>
> Cc: Keith Busch <[email protected]>
> Cc: Arthur Marsh <[email protected]>
> Cc: Hans de Bruin <[email protected]>

What exactly has changed between this version and the previous one?


> ---
> arch/x86/pci/bus_numa.c | 13 ++-----------
> drivers/acpi/pci_root.c | 7 +++++++
> 2 files changed, 9 insertions(+), 11 deletions(-)
>
> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
> index 7bcf06a7cd12..6eb3c8af96e2 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 850d7bf0c873..ae3fe4e64203 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,
>

--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.

2015-11-30 01:20:15

by Jiang Liu

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On 2015/11/28 0:06, Rafael J. Wysocki wrote:
> On Friday, November 27, 2015 11:12:33 AM Jiang Liu wrote:
>> From: Liu Jiang <[email protected]>
>>
>> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
>> PCI host bridge") converted x86 to use the common interface
>> acpi_pci_root_create, but the conversion missed on code piece in
>> arch/x86/pci/bus_numa.c, which causes regression on some legacy
>> AMD platforms as reported by Arthur Marsh <[email protected]>.
>> The root causes is that acpi_pci_root_create() fails to insert
>> host bridge resources into iomem_resource/ioport_resource because
>> x86_pci_root_bus_resources() has already inserted those resources.
>> So change x86_pci_root_bus_resources() to not insert resources into
>> iomem_resource/ioport_resource.
>>
>> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
>> Signed-off-by: Jiang Liu <[email protected]>
>> Reported-and-tested-by: Arthur Marsh <[email protected]>
>> Cc: Keith Busch <[email protected]>
>> Cc: Arthur Marsh <[email protected]>
>> Cc: Hans de Bruin <[email protected]>
>
> What exactly has changed between this version and the previous one?
Hi Rafael,
I have removed following changes against the original patch
posted at Nov 16.
bus);

/* already added by acpi ? */
- resource_list_for_each_entry(window, resources)
+ resource_list_for_each_entry(window, &info->resources)
if (window->res->flags & IORESOURCE_BUS) {
found = true;
break;
}
-
if (!found)
pci_add_resource(resources, &info->busn);

And I only refined the commit message based on the test patch
I sent to Authur as an attachment at Nov 25.
Thanks,
Gerry
>
>
>> ---
>> arch/x86/pci/bus_numa.c | 13 ++-----------
>> drivers/acpi/pci_root.c | 7 +++++++
>> 2 files changed, 9 insertions(+), 11 deletions(-)
>>
>> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
>> index 7bcf06a7cd12..6eb3c8af96e2 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 850d7bf0c873..ae3fe4e64203 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,
>>
>

2015-11-30 01:41:29

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On Monday, November 30, 2015 09:20:06 AM Jiang Liu wrote:
> On 2015/11/28 0:06, Rafael J. Wysocki wrote:
> > On Friday, November 27, 2015 11:12:33 AM Jiang Liu wrote:
> >> From: Liu Jiang <[email protected]>
> >>
> >> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
> >> PCI host bridge") converted x86 to use the common interface
> >> acpi_pci_root_create, but the conversion missed on code piece in
> >> arch/x86/pci/bus_numa.c, which causes regression on some legacy
> >> AMD platforms as reported by Arthur Marsh <[email protected]>.
> >> The root causes is that acpi_pci_root_create() fails to insert
> >> host bridge resources into iomem_resource/ioport_resource because
> >> x86_pci_root_bus_resources() has already inserted those resources.
> >> So change x86_pci_root_bus_resources() to not insert resources into
> >> iomem_resource/ioport_resource.
> >>
> >> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
> >> Signed-off-by: Jiang Liu <[email protected]>
> >> Reported-and-tested-by: Arthur Marsh <[email protected]>
> >> Cc: Keith Busch <[email protected]>
> >> Cc: Arthur Marsh <[email protected]>
> >> Cc: Hans de Bruin <[email protected]>
> >
> > What exactly has changed between this version and the previous one?
> Hi Rafael,
> I have removed following changes against the original patch
> posted at Nov 16.
> bus);
>
> /* already added by acpi ? */
> - resource_list_for_each_entry(window, resources)
> + resource_list_for_each_entry(window, &info->resources)
> if (window->res->flags & IORESOURCE_BUS) {
> found = true;
> break;
> }
> -
> if (!found)
> pci_add_resource(resources, &info->busn);
>
> And I only refined the commit message based on the test patch
> I sent to Authur as an attachment at Nov 25.

OK, thanks.

Keith, Hans, can you test this version too please?

Bjorn, any more comments from you on this one?

> >> ---
> >> arch/x86/pci/bus_numa.c | 13 ++-----------
> >> drivers/acpi/pci_root.c | 7 +++++++
> >> 2 files changed, 9 insertions(+), 11 deletions(-)
> >>
> >> diff --git a/arch/x86/pci/bus_numa.c b/arch/x86/pci/bus_numa.c
> >> index 7bcf06a7cd12..6eb3c8af96e2 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 850d7bf0c873..ae3fe4e64203 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,
> >>
> >

Thanks,
Rafael

2015-11-30 17:19:58

by Bjorn Helgaas

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On Mon, Nov 30, 2015 at 03:11:14AM +0100, Rafael J. Wysocki wrote:
> On Monday, November 30, 2015 09:20:06 AM Jiang Liu wrote:
> > On 2015/11/28 0:06, Rafael J. Wysocki wrote:
> > > On Friday, November 27, 2015 11:12:33 AM Jiang Liu wrote:
> > >> From: Liu Jiang <[email protected]>
> > >>
> > >> Commit 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support
> > >> PCI host bridge") converted x86 to use the common interface
> > >> acpi_pci_root_create, but the conversion missed on code piece in
> > >> arch/x86/pci/bus_numa.c, which causes regression on some legacy
> > >> AMD platforms as reported by Arthur Marsh <[email protected]>.
> > >> The root causes is that acpi_pci_root_create() fails to insert
> > >> host bridge resources into iomem_resource/ioport_resource because
> > >> x86_pci_root_bus_resources() has already inserted those resources.
> > >> So change x86_pci_root_bus_resources() to not insert resources into
> > >> iomem_resource/ioport_resource.
> > >>
> > >> Fixes: 4d6b4e69a245 ("x86/PCI/ACPI: Use common interface to support PCI host bridge")
> > >> Signed-off-by: Jiang Liu <[email protected]>
> > >> Reported-and-tested-by: Arthur Marsh <[email protected]>
> > >> Cc: Keith Busch <[email protected]>
> > >> Cc: Arthur Marsh <[email protected]>
> > >> Cc: Hans de Bruin <[email protected]>
> > >
> > > What exactly has changed between this version and the previous one?
> > Hi Rafael,
> > I have removed following changes against the original patch
> > posted at Nov 16.
> > bus);
> >
> > /* already added by acpi ? */
> > - resource_list_for_each_entry(window, resources)
> > + resource_list_for_each_entry(window, &info->resources)
> > if (window->res->flags & IORESOURCE_BUS) {
> > found = true;
> > break;
> > }
> > -
> > if (!found)
> > pci_add_resource(resources, &info->busn);
> >
> > And I only refined the commit message based on the test patch
> > I sent to Authur as an attachment at Nov 25.
>
> OK, thanks.
>
> Keith, Hans, can you test this version too please?
>
> Bjorn, any more comments from you on this one?

I haven't reviewed it in detail, but I don't have any objections to it.

Bjorn

2015-11-30 17:39:45

by Keith Busch

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On Mon, Nov 30, 2015 at 03:11:14AM +0100, Rafael J. Wysocki wrote:
> On Monday, November 30, 2015 09:20:06 AM Jiang Liu wrote:
> > Hi Rafael,
> > I have removed following changes against the original patch
> > posted at Nov 16.
> > bus);
> >
> > /* already added by acpi ? */
> > - resource_list_for_each_entry(window, resources)
> > + resource_list_for_each_entry(window, &info->resources)
> > if (window->res->flags & IORESOURCE_BUS) {
> > found = true;
> > break;
> > }
> > -
> > if (!found)
> > pci_add_resource(resources, &info->busn);
> >
> > And I only refined the commit message based on the test patch
> > I sent to Authur as an attachment at Nov 25.
>
> OK, thanks.
>
> Keith, Hans, can you test this version too please?

Thanks, works for me!

Tested-by: Keith Busch <[email protected]>

> Bjorn, any more comments from you on this one?

2015-12-01 19:00:58

by Hans de Bruin

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On 11/30/2015 03:11 AM, Rafael J. Wysocki wrote:
> On Monday, November 30, 2015 09:20:06 AM Jiang Liu wrote:
>> On 2015/11/28 0:06, Rafael J. Wysocki wrote:
...
>>
>> And I only refined the commit message based on the test patch
>> I sent to Authur as an attachment at Nov 25.
>
> OK, thanks.
>
> Keith, Hans, can you test this version too please?
>

This version of the patch works on my laptop too.

--
Hans

2015-12-02 01:38:16

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: [PATCH] x86/PCI: Fix regression caused by commit 4d6b4e69a245

On Tuesday, December 01, 2015 08:00:50 PM Hans de Bruin wrote:
> On 11/30/2015 03:11 AM, Rafael J. Wysocki wrote:
> > On Monday, November 30, 2015 09:20:06 AM Jiang Liu wrote:
> >> On 2015/11/28 0:06, Rafael J. Wysocki wrote:
> ...
> >>
> >> And I only refined the commit message based on the test patch
> >> I sent to Authur as an attachment at Nov 25.
> >
> > OK, thanks.
> >
> > Keith, Hans, can you test this version too please?
> >
>
> This version of the patch works on my laptop too.

Thank you all for verifying!

The patch is in my queue for 4.4-rc4.

Thanks,
Rafael