aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/pci
diff options
context:
space:
mode:
authorBjorn Helgaas <bjorn.helgaas@hp.com>2010-03-25 11:28:24 -0400
committerJesse Barnes <jbarnes@virtuousgeek.org>2010-03-25 13:14:07 -0400
commiteb9fc8ef7cb1362374e55d9503e3e7458f319991 (patch)
treee5618d1b18fec1a90234ff3c56aeb911f2891a4a /arch/x86/pci
parent99f4692e13ba22b228bdd155473f24ae9bdec1dc (diff)
x86/PCI: for host bridge address space collisions, show conflicting resource
With insert_resource_conflict(), we can learn what the actual conflict is, so print that info for debugging purposes. Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Diffstat (limited to 'arch/x86/pci')
-rw-r--r--arch/x86/pci/acpi.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
index 6e22454bfaa6..75ac3f856ea5 100644
--- a/arch/x86/pci/acpi.c
+++ b/arch/x86/pci/acpi.c
@@ -122,7 +122,7 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
122 struct acpi_resource_address64 addr; 122 struct acpi_resource_address64 addr;
123 acpi_status status; 123 acpi_status status;
124 unsigned long flags; 124 unsigned long flags;
125 struct resource *root; 125 struct resource *root, *conflict;
126 u64 start, end; 126 u64 start, end;
127 127
128 status = resource_to_addr(acpi_res, &addr); 128 status = resource_to_addr(acpi_res, &addr);
@@ -157,9 +157,12 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
157 return AE_OK; 157 return AE_OK;
158 } 158 }
159 159
160 if (insert_resource(root, res)) { 160 conflict = insert_resource_conflict(root, res);
161 if (conflict) {
161 dev_err(&info->bridge->dev, 162 dev_err(&info->bridge->dev,
162 "can't allocate host bridge window %pR\n", res); 163 "address space collision: host bridge window %pR "
164 "conflicts with %s %pR\n",
165 res, conflict->name, conflict);
163 } else { 166 } else {
164 pci_bus_add_resource(info->bus, res, 0); 167 pci_bus_add_resource(info->bus, res, 0);
165 info->res_num++; 168 info->res_num++;