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> 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