Re: [PATCH] ACPI: processor: Add cpuidle driver check in acpi_processor_register_idle_driver
From: lihuisong (C)
Date: Mon Jun 08 2026 - 06:15:29 EST
On 6/8/2026 2:38 PM, Tony W Wang-oc wrote:
Commit 7a8c994cbb2d ("ACPI: processor: idle: Optimize ACPI idleNow look good to me. Thanks.
driver registration") moved the ACPI idle driver registration to
acpi_processor_driver_init(), but it didn't check whether a cpuidle
driver was already registered.
For example, on Intel platforms, if the intel_idle driver is already
loaded, the code would still evaluate the _CST object in the ACPI
table and attempt to register the acpi_idle driver. This registration
would fail with -EBUSY due to the existing check in cpuidle_register_driver.
Add a check at the beginning of acpi_processor_register_idle_driver()
to avoid unnecessary _CST evaluate and potential registration failures.
Fixes: 7a8c994cbb2d ("ACPI: processor: idle: Optimize ACPI idle driver registration")Can you add some like below comment?
Signed-off-by: Tony W Wang-oc <TonyWWang-oc@xxxxxxxxxxx>
---
drivers/acpi/processor_idle.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index ee5facccbe10..0409411abb83 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -1355,6 +1355,11 @@ void acpi_processor_register_idle_driver(void)
int ret = -ENODEV;
int cpu;
"No need to register the ACPI idle driver when platform don't use this driver."
+ if (cpuidle_get_driver()) {
+ pr_debug("cpuidle driver %pS already registered.\n", cpuidle_get_driver());
+ return;
+ }
+
acpi_processor_update_max_cstate();
/*