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

From: Rafael J. Wysocki
Date: Thu Aug 01 2019 - 12:42:45 EST


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 <rafael.j.wysocki@xxxxxxxxx>
Cc: Michal Hocko <mhocko@xxxxxxxx>
Cc: Oscar Salvador <osalvador@xxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: David Hildenbrand <david@xxxxxxxxxx>

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>


---

@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.