Message ID | 1361892353-14786-14-git-send-email-jiang.liu@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Delegated to: | Bjorn Helgaas |
Headers | show |
On Tue, Feb 26, 2013 at 7:25 AM, Jiang Liu <liuj97@gmail.com> wrote: > From: Myron Stowe <myron.stowe@redhat.com> > > 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@redhat.com> > Signed-off-by: Jiang Liu <jiang.liu@huawei.com> > Cc: Yinghai Lu <yinghai@kernel.org> > Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> > Cc: Toshi Kani <toshi.kani@hp.com> > Cc: linux-pci@vger.kernel.org > Cc: linux-kernel@vger.kernel.org Nice cleanup! for 1-13, Reviewed-by: Yinghai Lu <yinghai@kernel.org> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 2013-2-27 3:07, Yinghai Lu wrote: > On Tue, Feb 26, 2013 at 7:25 AM, Jiang Liu <liuj97@gmail.com> wrote: >> From: Myron Stowe <myron.stowe@redhat.com> >> >> 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@redhat.com> >> Signed-off-by: Jiang Liu <jiang.liu@huawei.com> >> Cc: Yinghai Lu <yinghai@kernel.org> >> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> >> Cc: Toshi Kani <toshi.kani@hp.com> >> Cc: linux-pci@vger.kernel.org >> Cc: linux-kernel@vger.kernel.org > > Nice cleanup! > > for 1-13, > Reviewed-by: Yinghai Lu <yinghai@kernel.org> 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
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,