2019-07-31 15:11:10

by David Hildenbrand

[permalink] [raw]
Subject: [PATCH v1] drivers/acpi/scan.c: Document why we don't need the device_hotplug_lock

Let's document why the lock is not needed in acpi_scan_init(), right now
this is not really obvious.

Cc: Rafael J. Wysocki <[email protected]>
Cc: Michal Hocko <[email protected]>
Cc: Oscar Salvador <[email protected]>
Cc: Andrew Morton <[email protected]>
Signed-off-by: David Hildenbrand <[email protected]>
---

@Andrew, can you drop "drivers/acpi/scan.c: acquire device_hotplug_lock in
acpi_scan_init()" and add this patch instead? Thanks

---
drivers/acpi/scan.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
index 0e28270b0fd8..8444af6cd514 100644
--- a/drivers/acpi/scan.c
+++ b/drivers/acpi/scan.c
@@ -2204,6 +2204,12 @@ int __init acpi_scan_init(void)
acpi_gpe_apply_masked_gpes();
acpi_update_all_gpes();

+ /*
+ * Although we call__add_memory() that is documented to require the
+ * device_hotplug_lock, it is not necessary here because this is an
+ * early code when userspace or any other code path cannot trigger
+ * hotplug/hotunplug operations.
+ */
mutex_lock(&acpi_scan_lock);
/*
* Enumerate devices in the ACPI namespace.
--
2.21.0


2019-07-31 15:21:26

by Michal Hocko

[permalink] [raw]
Subject: Re: [PATCH v1] drivers/acpi/scan.c: Document why we don't need the device_hotplug_lock

On Wed 31-07-19 15:53:06, David Hildenbrand wrote:
> Let's document why the lock is not needed in acpi_scan_init(), right now
> this is not really obvious.
>
> Cc: Rafael J. Wysocki <[email protected]>
> Cc: Michal Hocko <[email protected]>
> Cc: Oscar Salvador <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Signed-off-by: David Hildenbrand <[email protected]>

Acked-by: Michal Hocko <[email protected]>

Thanks!

> ---
>
> @Andrew, can you drop "drivers/acpi/scan.c: acquire device_hotplug_lock in
> acpi_scan_init()" and add this patch instead? Thanks
>
> ---
> drivers/acpi/scan.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 0e28270b0fd8..8444af6cd514 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -2204,6 +2204,12 @@ int __init acpi_scan_init(void)
> acpi_gpe_apply_masked_gpes();
> acpi_update_all_gpes();
>
> + /*
> + * Although we call__add_memory() that is documented to require the
> + * device_hotplug_lock, it is not necessary here because this is an
> + * early code when userspace or any other code path cannot trigger
> + * hotplug/hotunplug operations.
> + */
> mutex_lock(&acpi_scan_lock);
> /*
> * Enumerate devices in the ACPI namespace.
> --
> 2.21.0

--
Michal Hocko
SUSE Labs

2019-08-01 22:39:08

by Wysocki, Rafael J

[permalink] [raw]
Subject: Re: [PATCH v1] drivers/acpi/scan.c: Document why we don't need the device_hotplug_lock

On 7/31/2019 3:53 PM, David Hildenbrand wrote:
> Let's document why the lock is not needed in acpi_scan_init(), right now
> this is not really obvious.
>
> Cc: Rafael J. Wysocki <[email protected]>
> Cc: Michal Hocko <[email protected]>
> Cc: Oscar Salvador <[email protected]>
> Cc: Andrew Morton <[email protected]>
> Signed-off-by: David Hildenbrand <[email protected]>

Acked-by: Rafael J. Wysocki <[email protected]>


> ---
>
> @Andrew, can you drop "drivers/acpi/scan.c: acquire device_hotplug_lock in
> acpi_scan_init()" and add this patch instead? Thanks
>
> ---
> drivers/acpi/scan.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> diff --git a/drivers/acpi/scan.c b/drivers/acpi/scan.c
> index 0e28270b0fd8..8444af6cd514 100644
> --- a/drivers/acpi/scan.c
> +++ b/drivers/acpi/scan.c
> @@ -2204,6 +2204,12 @@ int __init acpi_scan_init(void)
> acpi_gpe_apply_masked_gpes();
> acpi_update_all_gpes();
>
> + /*
> + * Although we call__add_memory() that is documented to require the
> + * device_hotplug_lock, it is not necessary here because this is an
> + * early code when userspace or any other code path cannot trigger
> + * hotplug/hotunplug operations.
> + */
> mutex_lock(&acpi_scan_lock);
> /*
> * Enumerate devices in the ACPI namespace.