On Monday, February 09, 2015 01:26:42 PM Stephen Rothwell wrote: > Hi Rafael, > > After merging the pm tree, today's linux-next build (powerpc > ppc64_defconfig) failed like this: > > In file included from drivers/of/of_pci.c:1:0: > drivers/of/of_pci.c: In function 'of_pci_get_host_bridge_resources': > include/linux/list.h:447:43: error: dereferencing pointer to incomplete type > for (pos = list_first_entry(head, typeof(*pos), member); \ > ^ [cut] > > Caused by commit 14d76b68f281 ("PCI: Use common resource list > management code instead of private implementation") interacting with > commit d2be00c0fb5a ("of/pci: Free resources on failure in > of_pci_get_host_bridge_resources()") from the pci tree. Thanks for identifying this! > I applied the following merge fix patch (which may need more work?). > Someone needs to remember to tell Linus about this fix (or similar) > when these trees get merged. The patch looks correct to me, so I did the following. I pulled the Bjorn's pci/host-generic branch that contained just that one commit which conflicted with the Gerry's one into my acpi-resources branch and folded the patch below into the merge. > From: Stephen Rothwell > Date: Mon, 9 Feb 2015 13:08:24 +1100 > Subject: [PATCH] of/pci: fix up for "PCI: Use common resource list management > code instead of private implementation" > > Signed-off-by: Stephen Rothwell > --- > drivers/of/of_pci.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c > index 60dc36c865b5..110fece2ff53 100644 > --- a/drivers/of/of_pci.c > +++ b/drivers/of/of_pci.c > @@ -140,7 +140,7 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, > unsigned char busno, unsigned char bus_max, > struct list_head *resources, resource_size_t *io_base) > { > - struct pci_host_bridge_window *window; > + struct resource_entry *window; > struct resource *res; > struct resource *bus_range; > struct of_pci_range range; > @@ -226,7 +226,7 @@ int of_pci_get_host_bridge_resources(struct device_node *dev, > conversion_failed: > kfree(res); > parse_failed: > - list_for_each_entry(window, resources, list) > + resource_list_for_each_entry(window, resources) > kfree(window->res); > pci_free_resource_list(resources); > kfree(bus_range); > -- I speak only for myself. Rafael J. Wysocki, Intel Open Source Technology Center.