[patch 2/2] PNP: don't check disabled PCI BARs for conflicts in quirk_system_pci_resources()

From: Bjorn Helgaas
Date: Mon Sep 29 2008 - 11:58:20 EST


quirk_system_pci_resources() checks PNP motherboard resource for
conflicts with PCI device BARs. When doing this, we should ignore
disabled PCI BARs, because they often contain zero and look like
they would conflict with legacy devices at low addresses.

This patch addresses this regression from 2.6.26:
http://bugzilla.kernel.org/show_bug.cgi?id=11550

Thanks to Frans Pop for reporting this issue and testing the fixes.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@xxxxxx>
Tested-by: Frans Pop <elendil@xxxxxxxxx>

diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
index 0bdf9b8..ef5ed99 100644
--- a/drivers/pnp/quirks.c
+++ b/drivers/pnp/quirks.c
@@ -247,6 +247,9 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
for (i = 0; i < DEVICE_COUNT_RESOURCE; i++) {
unsigned int type;

+ if (!pci_resource_enabled(pdev, i))
+ continue;
+
type = pci_resource_flags(pdev, i) &
(IORESOURCE_IO | IORESOURCE_MEM);
if (!type || pci_resource_len(pdev, i) == 0)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/