[PATCH] OF: PCI: Fix creation of mem-mapped pci host bridges

From: Robert Richter
Date: Mon Sep 22 2014 - 04:46:01 EST


The pci host bridge was not created if io_base was not set when
calling of_pci_get_host_bridge_resources(). This is esp. the case for
mem-mapped io (IORESOURCE_MEM). This patch fixes this. Function
parameter io_base is optional now.

Signed-off-by: Robert Richter <rrichter@xxxxxxxxxx>
---
drivers/of/of_pci.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/of/of_pci.c b/drivers/of/of_pci.c
index ffdb45ed8682..1f0e7c2505ee 100644
--- a/drivers/of/of_pci.c
+++ b/drivers/of/of_pci.c
@@ -182,9 +182,8 @@ int of_pci_get_host_bridge_resources(struct device_node *dev,
char range_type[4];
int err;

- if (!io_base)
- return -EINVAL;
- *io_base = OF_BAD_ADDR;
+ if (io_base)
+ *io_base = OF_BAD_ADDR;

bus_range = kzalloc(sizeof(*bus_range), GFP_KERNEL);
if (!bus_range)
@@ -242,7 +241,7 @@ int of_pci_get_host_bridge_resources(struct device_node *dev,
goto parse_failed;
}

- if (resource_type(res) == IORESOURCE_IO) {
+ if (io_base && resource_type(res) == IORESOURCE_IO) {
if (*io_base != OF_BAD_ADDR)
pr_warn("More than one I/O resource converted. CPU offset for old range lost!\n");
*io_base = range.cpu_addr;
--
2.1.0

--
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/