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…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Bjorn Helgaas
				Bjorn Helgaas