PCI: Add informational printk for invalid BARs
authorMyron Stowe <myron.stowe@redhat.com>
Thu, 30 Oct 2014 17:54:50 +0000 (11:54 -0600)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 19 Nov 2014 22:07:42 +0000 (15:07 -0700)
As a consequence of restoring the detection of invalid BARs, add a new
informational printk like the following when such occurrences are
encountered.

  pci ssss:bb:dd.f: [Firmware Bug]: reg 0xXX: invalid BAR (can't size)

Reported-by: William Unruh <unruh@physics.ubc.ca>
Reported-by: Martin Lucina <martin@lucina.net>
Signed-off-by: Myron Stowe <myron.stowe@redhat.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
CC: Matthew Wilcox <willy@linux.intel.com>
drivers/pci/probe.c

index 529fcd7..6029ad7 100644 (file)
@@ -247,8 +247,11 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
                goto fail;
 
        sz64 = pci_size(l64, sz64, mask64);
-       if (!sz64)
+       if (!sz64) {
+               dev_info(&dev->dev, FW_BUG "reg 0x%x: invalid BAR (can't size)\n",
+                        pos);
                goto fail;
+       }
 
        if (res->flags & IORESOURCE_MEM_64) {
                if ((sizeof(dma_addr_t) < 8 || sizeof(resource_size_t) < 8) &&