Эх сурвалжийг харах

PCI: Add informational printk for invalid BARs

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>
Myron Stowe 10 жил өмнө
parent
commit
7e79c5f8ca

+ 4 - 1
drivers/pci/probe.c

@@ -247,8 +247,11 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
 		goto fail;
 		goto fail;
 
 
 	sz64 = pci_size(l64, sz64, mask64);
 	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;
 		goto fail;
+	}
 
 
 	if (res->flags & IORESOURCE_MEM_64) {
 	if (res->flags & IORESOURCE_MEM_64) {
 		if ((sizeof(dma_addr_t) < 8 || sizeof(resource_size_t) < 8) &&
 		if ((sizeof(dma_addr_t) < 8 || sizeof(resource_size_t) < 8) &&