diff options
Diffstat (limited to 'arch/sh/drivers/pci/pci.c')
| -rw-r--r-- | arch/sh/drivers/pci/pci.c | 25 | 
1 files changed, 14 insertions, 11 deletions
diff --git a/arch/sh/drivers/pci/pci.c b/arch/sh/drivers/pci/pci.c index 1bc09ee7948f..d5462b7bc514 100644 --- a/arch/sh/drivers/pci/pci.c +++ b/arch/sh/drivers/pci/pci.c @@ -58,20 +58,23 @@ static void pcibios_scanbus(struct pci_channel *hose)  	need_domain_info = need_domain_info || hose->index;  	hose->need_domain_info = need_domain_info; -	if (bus) { -		next_busno = bus->busn_res.end + 1; -		/* Don't allow 8-bit bus number overflow inside the hose - -		   reserve some space for bridges. */ -		if (next_busno > 224) { -			next_busno = 0; -			need_domain_info = 1; -		} -		pci_bus_size_bridges(bus); -		pci_bus_assign_resources(bus); -	} else { +	if (!bus) {  		pci_free_resource_list(&resources); +		return; +	} + +	next_busno = bus->busn_res.end + 1; +	/* Don't allow 8-bit bus number overflow inside the hose - +	   reserve some space for bridges. */ +	if (next_busno > 224) { +		next_busno = 0; +		need_domain_info = 1;  	} + +	pci_bus_size_bridges(bus); +	pci_bus_assign_resources(bus); +	pci_bus_add_devices(bus);  }  /*  |