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

Bjorn Helgaas
2008-09-29T15:57:58Z

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@hp.com>
Tested-by: Frans Pop <elendil@planet.nl>

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)