On 2013-2-27 3:07, Yinghai Lu wrote: > On Tue, Feb 26, 2013 at 7:25 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote: >> From: Myron Stowe <myron.stowe@xxxxxxxxxx> >> >> Both sub-drivers of the "PCI Root Bridge ("pci_bridge")" driver, "acpiphp" >> and "pci_slot", have been converted to hook directly into the PCI core. >> >> With the conversions there are no remaining usages of the 'struct >> acpi_pci_driver' list based infrastructure. This patch removes it. >> >> Signed-off-by: Myron Stowe <myron.stowe@xxxxxxxxxx> >> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxx> >> Cc: Yinghai Lu <yinghai@xxxxxxxxxx> >> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@xxxxxxxxx> >> Cc: Toshi Kani <toshi.kani@xxxxxx> >> Cc: linux-pci@xxxxxxxxxxxxxxx >> Cc: linux-kernel@xxxxxxxxxxxxxxx > > Nice cleanup! > > for 1-13, > Reviewed-by: Yinghai Lu <yinghai@xxxxxxxxxx> HiYinghai, Thanks for review! Regards! Gerry > > Thanks > > Yinghai > >> --- >> drivers/acpi/pci_root.c | 48 +---------------------------------------------- >> include/linux/acpi.h | 9 --------- >> 2 files changed, 1 insertion(+), 56 deletions(-) >> >> diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c >> index 8b5a73b..2ef0c91 100644 >> --- a/drivers/acpi/pci_root.c >> +++ b/drivers/acpi/pci_root.c >> @@ -69,44 +69,12 @@ static struct acpi_driver acpi_pci_root_driver = { >> }, >> }; >> >> -/* Lock to protect both acpi_pci_roots and acpi_pci_drivers lists */ >> +/* Lock to protect both acpi_pci_roots lists */ >> static DEFINE_MUTEX(acpi_pci_root_lock); >> static LIST_HEAD(acpi_pci_roots); >> -static LIST_HEAD(acpi_pci_drivers); >> >> static DEFINE_MUTEX(osc_lock); >> >> -int acpi_pci_register_driver(struct acpi_pci_driver *driver) >> -{ >> - int n = 0; >> - struct acpi_pci_root *root; >> - >> - mutex_lock(&acpi_pci_root_lock); >> - list_add_tail(&driver->node, &acpi_pci_drivers); >> - if (driver->add) >> - list_for_each_entry(root, &acpi_pci_roots, node) { >> - driver->add(root); >> - n++; >> - } >> - mutex_unlock(&acpi_pci_root_lock); >> - >> - return n; >> -} >> -EXPORT_SYMBOL(acpi_pci_register_driver); >> - >> -void acpi_pci_unregister_driver(struct acpi_pci_driver *driver) >> -{ >> - struct acpi_pci_root *root; >> - >> - mutex_lock(&acpi_pci_root_lock); >> - list_del(&driver->node); >> - if (driver->remove) >> - list_for_each_entry(root, &acpi_pci_roots, node) >> - driver->remove(root); >> - mutex_unlock(&acpi_pci_root_lock); >> -} >> -EXPORT_SYMBOL(acpi_pci_unregister_driver); >> - >> /** >> * acpi_is_root_bridge - determine whether an ACPI CA node is a PCI root bridge >> * @handle - the ACPI CA node in question. >> @@ -416,7 +384,6 @@ static int acpi_pci_root_add(struct acpi_device *device) >> acpi_status status; >> int result; >> struct acpi_pci_root *root; >> - struct acpi_pci_driver *driver; >> u32 flags, base_flags; >> bool is_osc_granted = false; >> >> @@ -576,12 +543,6 @@ static int acpi_pci_root_add(struct acpi_device *device) >> pci_assign_unassigned_bus_resources(root->bus); >> } >> >> - mutex_lock(&acpi_pci_root_lock); >> - list_for_each_entry(driver, &acpi_pci_drivers, node) >> - if (driver->add) >> - driver->add(root); >> - mutex_unlock(&acpi_pci_root_lock); >> - >> /* need to after hot-added ioapic is registered */ >> if (system_state != SYSTEM_BOOTING) >> pci_enable_bridges(root->bus); >> @@ -602,16 +563,9 @@ end: >> 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; >> >> pci_stop_root_bus(root->bus); >> >> - mutex_lock(&acpi_pci_root_lock); >> - list_for_each_entry_reverse(driver, &acpi_pci_drivers, node) >> - if (driver->remove) >> - driver->remove(root); >> - mutex_unlock(&acpi_pci_root_lock); >> - >> device_set_run_wake(root->bus->bridge, false); >> pci_acpi_remove_bus_pm_notifier(device); >> >> diff --git a/include/linux/acpi.h b/include/linux/acpi.h >> index 8c1d6f2..eeb5600 100644 >> --- a/include/linux/acpi.h >> +++ b/include/linux/acpi.h >> @@ -147,15 +147,6 @@ void acpi_penalize_isa_irq(int irq, int active); >> >> void acpi_pci_irq_disable (struct pci_dev *dev); >> >> -struct acpi_pci_driver { >> - struct list_head node; >> - int (*add)(struct acpi_pci_root *root); >> - void (*remove)(struct acpi_pci_root *root); >> -}; >> - >> -int acpi_pci_register_driver(struct acpi_pci_driver *driver); >> -void acpi_pci_unregister_driver(struct acpi_pci_driver *driver); >> - >> extern int ec_read(u8 addr, u8 *val); >> extern int ec_write(u8 addr, u8 val); >> extern int ec_transaction(u8 command, >> -- >> 1.7.9.5 >> > > . > -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html