diff options
author | Bjorn Helgaas <bjorn.helgaas@hp.com> | 2010-03-25 09:28:24 -0600 |
---|---|---|
committer | Jesse Barnes <jbarnes@virtuousgeek.org> | 2010-03-25 10:14:07 -0700 |
commit | eb9fc8ef7cb1362374e55d9503e3e7458f319991 (patch) | |
tree | e5618d1b18fec1a90234ff3c56aeb911f2891a4a /arch | |
parent | 99f4692e13ba22b228bdd155473f24ae9bdec1dc (diff) | |
download | lwn-eb9fc8ef7cb1362374e55d9503e3e7458f319991.tar.gz lwn-eb9fc8ef7cb1362374e55d9503e3e7458f319991.zip |
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')
-rw-r--r-- | arch/x86/pci/acpi.c | 9 |
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) struct acpi_resource_address64 addr; acpi_status status; unsigned long flags; - struct resource *root; + struct resource *root, *conflict; u64 start, end; status = resource_to_addr(acpi_res, &addr); @@ -157,9 +157,12 @@ setup_resource(struct acpi_resource *acpi_res, void *data) return AE_OK; } - if (insert_resource(root, res)) { + conflict = insert_resource_conflict(root, res); + if (conflict) { dev_err(&info->bridge->dev, - "can't allocate host bridge window %pR\n", res); + "address space collision: host bridge window %pR " + "conflicts with %s %pR\n", + res, conflict->name, conflict); } else { pci_bus_add_resource(info->bus, res, 0); info->res_num++; |