diff options
Diffstat (limited to 'drivers/pnp/quirks.c')
| -rw-r--r-- | drivers/pnp/quirks.c | 13 | 
1 files changed, 7 insertions, 6 deletions
diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c index c47dd252f44..d049a2279fe 100644 --- a/drivers/pnp/quirks.c +++ b/drivers/pnp/quirks.c @@ -138,13 +138,15 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)  			pci_start = pci_resource_start(pdev, i);  			pci_end = pci_resource_end(pdev, i); -			for (j = 0; j < PNP_MAX_MEM; j++) { -				if (!pnp_mem_valid(dev, j) || -				    pnp_mem_len(dev, j) == 0) +			for (j = 0; +			     (res = pnp_get_resource(dev, IORESOURCE_MEM, j)); +			     j++) { +				if (res->flags & IORESOURCE_UNSET || +				    (res->start == 0 && res->end == 0))  					continue; -				pnp_start = pnp_mem_start(dev, j); -				pnp_end = pnp_mem_end(dev, j); +				pnp_start = res->start; +				pnp_end = res->end;  				/*  				 * If the PNP region doesn't overlap the PCI @@ -177,7 +179,6 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)  					pci_name(pdev), i,  					(unsigned long long) pci_start,  					(unsigned long long) pci_end); -				res = pnp_get_resource(dev, IORESOURCE_MEM, j);  				res->flags = 0;  			}  		}  |