[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAE9FiQW4ONas+m2HWq_xs457xZu3VJ6Nxsq320MD72Khb+sqJg@mail.gmail.com>
Date: Thu, 1 Nov 2012 16:39:50 -0700
From: Yinghai Lu <yinghai@...nel.org>
To: "Rafael J. Wysocki" <rjw@...k.pl>
Cc: Toshi Kani <toshi.kani@...com>, ZhangRui <rui.zhang@...el.com>,
Andrew Morton <akpm@...ux-foundation.org>,
Len Brown <lenb@...nel.org>,
Tang Chen <tangchen@...fujitsu.com>, bhelgaas@...gle.com,
jiang.liu@...wei.com, izumi.taku@...fujitsu.com,
isimatu.yasuaki@...fujitsu.com, linux-acpi@...r.kernel.org,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3 3/3] Improve container_notify_cb() to support container hot-remove.
On Thu, Nov 1, 2012 at 4:15 PM, Rafael J. Wysocki <rjw@...k.pl> wrote:
> From: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> Subject: ACPI: Make seemingly useless check in osl.c more understandable
>
> There is a seemingly useless check in drivers/acpi/osl.c added by
> commit bc73675 (ACPI: fixes a false alarm from lockdep), which really
> is necessary to avoid false positive lockdep complaints. Document
> this and rearrange the code related to it so that it makes fewer
> checks.
>
> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@...el.com>
> ---
> drivers/acpi/osl.c | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> Index: linux/drivers/acpi/osl.c
> ===================================================================
> --- linux.orig/drivers/acpi/osl.c
> +++ linux/drivers/acpi/osl.c
> @@ -944,17 +944,24 @@ static acpi_status __acpi_os_execute(acp
> * because the hotplug code may call driver .remove() functions,
> * which invoke flush_scheduled_work/acpi_os_wait_events_complete
> * to flush these workqueues.
> + *
> + * To prevent lockdep from complaining unnecessarily, make sure that
> + * there is a different static lockdep key for each workqueue by using
> + * INIT_WORK() for each of them separately.
> */
> - queue = hp ? kacpi_hotplug_wq :
> - (type == OSL_NOTIFY_HANDLER ? kacpi_notify_wq : kacpid_wq);
> - dpc->wait = hp ? 1 : 0;
> -
> - if (queue == kacpi_hotplug_wq)
> + if (hp) {
> + queue = kacpi_hotplug_wq;
> + dpc->wait = 1;
> INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> - else if (queue == kacpi_notify_wq)
> + } else if (type == OSL_NOTIFY_HANDLER) {
> + queue = kacpi_notify_wq;
> + dpc->wait = 0;
yes, much clear.
at the same can you changne
dpc allocation from kmalloc with kzalloc instead.
then we save two lines for dpc->wait = 0
After that
Acked-by: Yinghai Lu <yinghai@...nel.org>
> INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> - else
> + } else {
> + queue = kacpid_wq;
> + dpc->wait = 0;
> INIT_WORK(&dpc->work, acpi_os_execute_deferred);
> + }
>
> /*
> * On some machines, a software-initiated SMI causes corruption unless
>
> --
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists