Thread (78 messages) 78 messages, 6 authors, 2013-07-02

Re: [PATCH v3 8/8] ACPI, PCI: add resoruce-assign code for devices under hot-added hostbridge

From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-09-23 22:48:47
Also in: linux-pci

On Wed, Sep 19, 2012 at 10:41 PM, Yinghai Lu [off-list ref] wrote:
On Mon, Sep 17, 2012 at 11:26 PM, Taku Izumi [off-list ref] wrote:
quoted
Devices under hot-added hostbridge have no chance to assign resources
and to configure them, so this patch adds such code for hot-added
hostbridges at acpi_pci_root_start().

Signed-off-by: Taku Izumi <redacted>
---
 drivers/acpi/pci_root.c |   17 +++++++++++++++++
 include/acpi/acpi_bus.h |    1 +
 2 files changed, 18 insertions(+)

Index: Bjorn-next-0903/drivers/acpi/pci_root.c
===================================================================
--- Bjorn-next-0903.orig/drivers/acpi/pci_root.c
+++ Bjorn-next-0903/drivers/acpi/pci_root.c
@@ -38,6 +38,7 @@
 #include <acpi/acpi_bus.h>
 #include <acpi/acpi_drivers.h>
 #include <acpi/apei.h>
+#include <linux/pci_hotplug.h>

 #define PREFIX "ACPI: "
@@ -636,6 +640,7 @@ static int acpi_pci_root_start(struct ac
 {
        struct acpi_pci_root *root = acpi_driver_data(device);
        struct acpi_pci_driver *driver;
+       struct pci_dev *pdev;

        mutex_lock(&acpi_pci_root_lock);
        list_for_each_entry(driver, &acpi_pci_drivers, node)
@@ -643,6 +648,18 @@ static int acpi_pci_root_start(struct ac
                        driver->add(root);
        mutex_unlock(&acpi_pci_root_lock);

+       /*
+        * Devices under hot-added hostbridge have no chance to assign
+        * resources and to configure them, so do that here
+        */
+       if (root->hot_added) {
+               pci_bus_size_bridges(root->bus);
+               pci_bus_assign_resources(root->bus);
+               list_for_each_entry(pdev, &root->bus->devices, bus_list)
+                       pci_configure_slot(pdev);
one more problem, this one will have problem when CONFIG_HOTPLUG_PCI=m
or not defined.

Also I do not see the point to call pci_config_slot here - my
patcheset did not do that, So how do you figure that out?

or you just need to have mpss set?

Bjorn, You may need to have a patch that will enable
CONFIG_HOTPLUG_PCI just Greg's enabling CONIFG_HOTPLUG forcely.

Yinghai
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help