From ef91ea20f61364c5f5cf5f275f7806d8015c910f Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Sat, 3 Nov 2012 21:39:31 -0700 Subject: [PATCH] --- yaml --- r: 358391 b: refs/heads/master c: 3c449ed0075994b3f3371f8254560428ba787efc h: refs/heads/master i: 358389: 98e61b76581903d91724f36a96ea2881c26a36d1 358387: cf230fdce675e86a45e0e5702adad54d22805b0a 358383: 7ba8e81acd4a16f27ceff039e708fda1955610a7 v: v3 --- [refs] | 2 +- trunk/drivers/acpi/pci_root.c | 4 +++- trunk/drivers/pci/bus.c | 2 ++ trunk/include/linux/pci.h | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index cb8398cf484b..77ea08070cf2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b95168e010a405add13aa010d7c45b55dc4026c7 +refs/heads/master: 3c449ed0075994b3f3371f8254560428ba787efc diff --git a/trunk/drivers/acpi/pci_root.c b/trunk/drivers/acpi/pci_root.c index 7928d4dc7056..dcbe9660e756 100644 --- a/trunk/drivers/acpi/pci_root.c +++ b/trunk/drivers/acpi/pci_root.c @@ -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) diff --git a/trunk/drivers/pci/bus.c b/trunk/drivers/pci/bus.c index ad6a8b635692..847f3ca47bb8 100644 --- a/trunk/drivers/pci/bus.c +++ b/trunk/drivers/pci/bus.c @@ -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 diff --git a/trunk/include/linux/pci.h b/trunk/include/linux/pci.h index 15472d691ee6..907b455ab603 100644 --- a/trunk/include/linux/pci.h +++ b/trunk/include/linux/pci.h @@ -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) */