OSDN Git Service

PCI: Show driver, BAR#, and resource on pci_ioremap_bar() failure
authorBjorn Helgaas <bhelgaas@google.com>
Thu, 12 Mar 2015 17:30:11 +0000 (12:30 -0500)
committerBjorn Helgaas <bhelgaas@google.com>
Thu, 12 Mar 2015 23:52:22 +0000 (18:52 -0500)
Use dev_warn() to complain about a pci_ioremap_bar() failure so we can
include the driver name, BAR number, and the resource itself.  We could use
dev_WARN() to also get the backtrace as we did previously, but I think
that's more information than we need.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/pci/pci.c

index 81f06e8..a6d191a 100644 (file)
@@ -126,15 +126,16 @@ EXPORT_SYMBOL_GPL(pci_bus_max_busnr);
 #ifdef CONFIG_HAS_IOMEM
 void __iomem *pci_ioremap_bar(struct pci_dev *pdev, int bar)
 {
+       struct resource *res = &pdev->resource[bar];
+
        /*
         * Make sure the BAR is actually a memory resource, not an IO resource
         */
-       if (!(pci_resource_flags(pdev, bar) & IORESOURCE_MEM)) {
-               WARN_ON(1);
+       if (!(res->flags & IORESOURCE_MEM)) {
+               dev_warn(&pdev->dev, "can't ioremap BAR %d: %pR\n", bar, res);
                return NULL;
        }
-       return ioremap_nocache(pci_resource_start(pdev, bar),
-                                    pci_resource_len(pdev, bar));
+       return ioremap_nocache(res->start, resource_size(res));
 }
 EXPORT_SYMBOL_GPL(pci_ioremap_bar);
 #endif