PCI/ACPI: Reserve firmware-allocated resources for hot-added root buses
Firmware may have assigned PCI BARs for hot-added devices, so reserve those resources before trying to allocate more. [bhelgaas: move empty weak definition here] Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
This commit is contained in:
parent
b95168e010
commit
3c449ed007
|
@ -650,8 +650,10 @@ static int acpi_pci_root_start(struct acpi_device *device)
|
|||
struct acpi_pci_root *root = acpi_driver_data(device);
|
||||
struct acpi_pci_driver *driver;
|
||||
|
||||
if (system_state != SYSTEM_BOOTING)
|
||||
if (system_state != SYSTEM_BOOTING) {
|
||||
pcibios_resource_survey_bus(root->bus);
|
||||
pci_assign_unassigned_bus_resources(root->bus);
|
||||
}
|
||||
|
||||
mutex_lock(&acpi_pci_root_lock);
|
||||
list_for_each_entry(driver, &acpi_pci_drivers, node)
|
||||
|
|
|
@ -158,6 +158,8 @@ pci_bus_alloc_resource(struct pci_bus *bus, struct resource *res,
|
|||
return ret;
|
||||
}
|
||||
|
||||
void __weak pcibios_resource_survey_bus(struct pci_bus *bus) { }
|
||||
|
||||
/**
|
||||
* pci_bus_add_device - add a single device
|
||||
* @dev: device to add
|
||||
|
|
|
@ -674,6 +674,7 @@ extern struct list_head pci_root_buses; /* list of all known PCI buses */
|
|||
/* Some device drivers need know if pci is initiated */
|
||||
extern int no_pci_devices(void);
|
||||
|
||||
void pcibios_resource_survey_bus(struct pci_bus *bus);
|
||||
void pcibios_fixup_bus(struct pci_bus *);
|
||||
int __must_check pcibios_enable_device(struct pci_dev *, int mask);
|
||||
/* Architecture specific versions may override this (weak) */
|
||||
|
|
Loading…
Reference in New Issue