Re: [RFC Patch v1 1/6] acpi_pad: simplify notify handler by using acpi_drv_ops->notify

From: Rafael J. Wysocki
Date: Mon Feb 17 2014 - 19:51:25 EST


On Monday, February 17, 2014 01:02:48 PM Jiang Liu wrote:
> Use callback acpi_drv_ops->notify to simplify acpi_pad driver's
> notification handling code.
>
> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxxxxxxx>

There is a plan to move away from using struct acpi_driver objects and
this change will need to be reverted then. I'm not sure if that's really
useful?

> ---
> drivers/acpi/acpi_pad.c | 25 +++++--------------------
> 1 file changed, 5 insertions(+), 20 deletions(-)
>
> diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
> index df96a0f..1e3ce76 100644
> --- a/drivers/acpi/acpi_pad.c
> +++ b/drivers/acpi/acpi_pad.c
> @@ -443,14 +443,11 @@ static void acpi_pad_handle_notify(acpi_handle handle)
> mutex_unlock(&isolated_cpus_lock);
> }
>
> -static void acpi_pad_notify(acpi_handle handle, u32 event,
> - void *data)
> +static void acpi_pad_notify(struct acpi_device *device, u32 event)
> {
> - struct acpi_device *device = data;
> -
> switch (event) {
> case ACPI_PROCESSOR_AGGREGATOR_NOTIFY:
> - acpi_pad_handle_notify(handle);
> + acpi_pad_handle_notify(device->handle);
> acpi_bus_generate_netlink_event(device->pnp.device_class,
> dev_name(&device->dev), event, 0);
> break;
> @@ -462,22 +459,10 @@ static void acpi_pad_notify(acpi_handle handle, u32 event,
>
> static int acpi_pad_add(struct acpi_device *device)
> {
> - acpi_status status;
> -
> strcpy(acpi_device_name(device), ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME);
> strcpy(acpi_device_class(device), ACPI_PROCESSOR_AGGREGATOR_CLASS);
>
> - if (acpi_pad_add_sysfs(device))
> - return -ENODEV;
> -
> - status = acpi_install_notify_handler(device->handle,
> - ACPI_DEVICE_NOTIFY, acpi_pad_notify, device);
> - if (ACPI_FAILURE(status)) {
> - acpi_pad_remove_sysfs(device);
> - return -ENODEV;
> - }
> -
> - return 0;
> + return acpi_pad_add_sysfs(device);
> }
>
> static int acpi_pad_remove(struct acpi_device *device)
> @@ -486,9 +471,8 @@ static int acpi_pad_remove(struct acpi_device *device)
> acpi_pad_idle_cpus(0);
> mutex_unlock(&isolated_cpus_lock);
>
> - acpi_remove_notify_handler(device->handle,
> - ACPI_DEVICE_NOTIFY, acpi_pad_notify);
> acpi_pad_remove_sysfs(device);
> +
> return 0;
> }
>
> @@ -505,6 +489,7 @@ static struct acpi_driver acpi_pad_driver = {
> .ops = {
> .add = acpi_pad_add,
> .remove = acpi_pad_remove,
> + .notify = acpi_pad_notify,
> },
> };
>
>

--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
--
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/