]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ACPICA: Allow to skip Global Lock initialization
authorHuacai Chen <chenhuacai@loongson.cn>
Fri, 12 Sep 2025 19:54:53 +0000 (21:54 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 19 Oct 2025 14:34:00 +0000 (16:34 +0200)
commit feb8ae81b2378b75a99c81d315602ac8918ed382 upstream.

Introduce acpi_gbl_use_global_lock, which allows to skip the Global Lock
initialization. This is useful for systems without Global Lock (such as
loong_arch), so as to avoid error messages during boot phase:

 ACPI Error: Could not enable global_lock event (20240827/evxfevnt-182)
 ACPI Error: No response from Global Lock hardware, disabling lock (20240827/evglock-59)

Link: https://github.com/acpica/acpica/commit/463cb0fe
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Cc: Huacai Chen <chenhuacai@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/acpi/acpica/evglock.c
include/acpi/acpixf.h

index 989dc01af03fbb3d622935d52a59c72b83b64a6b..bc205b3309043ba4cfe9668783eb2608f1498994 100644 (file)
@@ -42,6 +42,10 @@ acpi_status acpi_ev_init_global_lock_handler(void)
                return_ACPI_STATUS(AE_OK);
        }
 
+       if (!acpi_gbl_use_global_lock) {
+               return_ACPI_STATUS(AE_OK);
+       }
+
        /* Attempt installation of the global lock handler */
 
        status = acpi_install_fixed_event_handler(ACPI_EVENT_GLOBAL,
index 78b24b09048885f16fe1f3b48622e49f13c1f0e5..f35b29f50097292b0deda31a8eaecf3ea9534f57 100644 (file)
@@ -213,6 +213,12 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_osi_data, 0);
  */
 ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware, FALSE);
 
+/*
+ * ACPI Global Lock is mainly used for systems with SMM, so no-SMM systems
+ * (such as loong_arch) may not have and not use Global Lock.
+ */
+ACPI_INIT_GLOBAL(u8, acpi_gbl_use_global_lock, TRUE);
+
 /*
  * Maximum timeout for While() loop iterations before forced method abort.
  * This mechanism is intended to prevent infinite loops during interpreter