forked from mirrors/linux
		
	PCI: Mark invalid BARs as unassigned
If a BAR is not inside any upstream bridge window, or if it conflicts with another resource, mark it as IORESOURCE_UNSET so we don't try to use it. We may be able to assign a different address for it. Signed-off-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
This commit is contained in:
		
							parent
							
								
									f7834c092c
								
							
						
					
					
						commit
						c770cb4cb5
					
				
					 1 changed files with 2 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -120,6 +120,7 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
 | 
			
		|||
	if (!root) {
 | 
			
		||||
		dev_info(&dev->dev, "can't claim BAR %d %pR: no compatible bridge window\n",
 | 
			
		||||
			 resource, res);
 | 
			
		||||
		res->flags |= IORESOURCE_UNSET;
 | 
			
		||||
		return -EINVAL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -127,6 +128,7 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
 | 
			
		|||
	if (conflict) {
 | 
			
		||||
		dev_info(&dev->dev, "can't claim BAR %d %pR: address conflict with %s %pR\n",
 | 
			
		||||
			 resource, res, conflict->name, conflict);
 | 
			
		||||
		res->flags |= IORESOURCE_UNSET;
 | 
			
		||||
		return -EBUSY;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue