diff options
Diffstat (limited to 'drivers/pci/setup-res.c')
| -rw-r--r-- | drivers/pci/setup-res.c | 24 | 
1 files changed, 10 insertions, 14 deletions
| diff --git a/drivers/pci/setup-res.c b/drivers/pci/setup-res.c index ca14576bf2bf..c6657cdd06f6 100644 --- a/drivers/pci/setup-res.c +++ b/drivers/pci/setup-res.c @@ -29,7 +29,7 @@ static void pci_std_update_resource(struct pci_dev *dev, int resno)  	u16 cmd;  	u32 new, check, mask;  	int reg; -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	const char *res_name = pci_resource_name(dev, resno);  	/* Per SR-IOV spec 3.4.1.11, VF BARs are RO zero */ @@ -127,10 +127,8 @@ void pci_update_resource(struct pci_dev *dev, int resno)  {  	if (resno <= PCI_ROM_RESOURCE)  		pci_std_update_resource(dev, resno); -#ifdef CONFIG_PCI_IOV -	else if (resno >= PCI_IOV_RESOURCES && resno <= PCI_IOV_RESOURCE_END) +	else if (pci_resource_is_iov(resno))  		pci_iov_update_resource(dev, resno); -#endif  }  int pci_claim_resource(struct pci_dev *dev, int resource) @@ -262,7 +260,7 @@ resource_size_t __weak pcibios_align_resource(void *data,  static int __pci_assign_resource(struct pci_bus *bus, struct pci_dev *dev,  		int resno, resource_size_t size, resource_size_t align)  { -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	resource_size_t min;  	int ret; @@ -325,7 +323,7 @@ static int _pci_assign_resource(struct pci_dev *dev, int resno,  int pci_assign_resource(struct pci_dev *dev, int resno)  { -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	const char *res_name = pci_resource_name(dev, resno);  	resource_size_t align, size;  	int ret; @@ -372,7 +370,7 @@ EXPORT_SYMBOL(pci_assign_resource);  int pci_reassign_resource(struct pci_dev *dev, int resno,  			  resource_size_t addsize, resource_size_t min_align)  { -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	const char *res_name = pci_resource_name(dev, resno);  	unsigned long flags;  	resource_size_t new_size; @@ -389,7 +387,6 @@ int pci_reassign_resource(struct pci_dev *dev, int resno,  		return -EINVAL;  	} -	/* already aligned with min_align */  	new_size = resource_size(res) + addsize;  	ret = _pci_assign_resource(dev, resno, new_size, min_align);  	if (ret) { @@ -411,14 +408,14 @@ int pci_reassign_resource(struct pci_dev *dev, int resno,  void pci_release_resource(struct pci_dev *dev, int resno)  { -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	const char *res_name = pci_resource_name(dev, resno); -	pci_info(dev, "%s %pR: releasing\n", res_name, res); -  	if (!res->parent)  		return; +	pci_info(dev, "%s %pR: releasing\n", res_name, res); +  	release_resource(res);  	res->end = resource_size(res) - 1;  	res->start = 0; @@ -428,7 +425,7 @@ EXPORT_SYMBOL(pci_release_resource);  int pci_resize_resource(struct pci_dev *dev, int resno, int size)  { -	struct resource *res = dev->resource + resno; +	struct resource *res = pci_resource_n(dev, resno);  	struct pci_host_bridge *host;  	int old, ret;  	u32 sizes; @@ -497,8 +494,7 @@ int pci_enable_resources(struct pci_dev *dev, int mask)  		if (!(r->flags & (IORESOURCE_IO | IORESOURCE_MEM)))  			continue; -		if ((i == PCI_ROM_RESOURCE) && -				(!(r->flags & IORESOURCE_ROM_ENABLE))) +		if (pci_resource_is_optional(dev, i))  			continue;  		if (r->flags & IORESOURCE_UNSET) { | 
