From: Jiang Liu <[email protected]>

When hot-plugging PCI root bridge, acpi_pci_drivers' add()/remove()
methods should be invoked to notify registered drivers.

-v2: Move add calling to acpi_pci_root_start by Yinghai

Signed-off-by: Jiang Liu <[email protected]>
Signed-off-by: Yinghai Lu <[email protected]>
---
 drivers/acpi/pci_root.c |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
index 2aec08d..9ba516b 100644
--- a/drivers/acpi/pci_root.c
+++ b/drivers/acpi/pci_root.c
@@ -626,14 +626,25 @@ end:
 static int acpi_pci_root_start(struct acpi_device *device)
 {
        struct acpi_pci_root *root = acpi_driver_data(device);
+       struct acpi_pci_driver *driver;
+
+       list_for_each_entry(driver, &acpi_pci_drivers, node)
+               if (driver->add)
+                       driver->add(device->handle);
 
        pci_bus_add_devices(root->bus);
+
        return 0;
 }
 
 static int acpi_pci_root_remove(struct acpi_device *device, int type)
 {
        struct acpi_pci_root *root = acpi_driver_data(device);
+       struct acpi_pci_driver *driver;
+
+       list_for_each_entry(driver, &acpi_pci_drivers, node)
+               if (driver->remove)
+                       driver->remove(root->device->handle);
 
        /* that root bus could be removed already */
        if (!pci_find_bus(root->segment, root->secondary.start)) {
-- 
1.7.7

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to