Re: [PATCH v3] ACPI/pci-bind: remove bind/unbind callbacks from acpi_device_ops
From: Yinghai Lu <yinghai@kernel.org>
Date: 2012-09-16 16:49:47
Also in:
lkml
On Sun, Sep 16, 2012 at 7:09 AM, Jiang Liu [off-list ref] wrote:
quoted hunk ↗ jump to hunk
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 <redacted> Signed-off-by: Yijing Wang <redacted> --- 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