Re: [PATCH v3] ACPI/pci-bind: remove bind/unbind callbacks from acpi_device_ops

From: Yinghai Lu
Date: Sun Sep 16 2012 - 12:49:37 EST


On Sun, Sep 16, 2012 at 7:09 AM, Jiang Liu <liuj97@xxxxxxxxx> wrote:
> Now ACPI devices are created before/destroyed after corresponding PCI
> devices, and acpi_platform_notify/acpi_platform_notify_remove will
> update PCI<->ACPI binding relationship when creating/destroying PCI
> devices, there's no need to invoke bind/unbind callbacks from ACPI
> device probe/destroy routines anymore. So remove bind/unbind callbacks
> from acpi_device_ops.
>
> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxx>
> Signed-off-by: Yijing Wang <wangyijing@xxxxxxxxxx>
> ---
> V2->V3:
> Simplify implementation according to Yinghai's suggestion.
> ---
> drivers/acpi/glue.c | 15 ++++---
> drivers/acpi/internal.h | 3 +-
> drivers/acpi/pci_bind.c | 102 ++++++++++---------------------------------
> drivers/acpi/pci_root.c | 9 ----
> drivers/acpi/scan.c | 21 +--------
> include/acpi/acpi_bus.h | 4 --
> include/acpi/acpi_drivers.h | 1 -
> 7 files changed, 36 insertions(+), 119 deletions(-)
>
> diff --git a/drivers/acpi/glue.c b/drivers/acpi/glue.c
> index 4904700..9779fb7 100644
> --- a/drivers/acpi/glue.c
> +++ b/drivers/acpi/glue.c
> @@ -160,10 +160,13 @@ static int acpi_bind_one(struct device *dev, acpi_handle handle)
> }
> dev->archdata.acpi_handle = handle;
>
> - acpi_pci_bind_notify(dev->archdata.acpi_handle, dev, true);
> -
> status = acpi_bus_get_device(handle, &acpi_dev);
> - if (!ACPI_FAILURE(status)) {
> + if (!ACPI_FAILURE(status))
> + acpi_dev = NULL;
> +
> + acpi_pci_bind_notify(dev->archdata.acpi_handle, acpi_dev, dev, true);

It seems you can do
acpi_pci_bind_notify(acpi_dev, dev, true);
instead.

aka:
Do you have test case acpi_dev is not created before pci device?

Thanks

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