CVE-2026-80611: ACPI: processor_idle: Mark LPI enter functions as __cpuidle
In the Linux kernel, the following vulnerability has been resolved:
ACPI: processoridle: Mark LPI enter functions as cpuidle
When function tracing or Kprobes is enabled, entering an ACPI Low Power Idle (LPI) state triggers the following RCU splat:
RCU not on for: acpiidlelpienter+0x4/0xd8 WARNING: CPU: 8 PID: 0 at include/linux/tracerecursion.h:162 functiontracecall+0x1e8/0x228
The acpiidlelpienter() function is invoked within the cpuidle path after RCU has already been disabled for the current local CPU. Consequently, ftrace's functiontracecall() expects RCU to be actively watching before recording trace data, emitting a warning if it is not.
Fix this by annotating acpiidlelpienter(), the generic weak stub, and the RISC-V implementation of acpiprocessorffhlpienter() with cpuidle. This moves these functions into the '.cpuidle.text' section, implicitly disabling ftrace instrumentation (notrace) along this sensitive path and preventing trace-induced RCU warnings during idle entry.
Affected Software
Event History
Frequently Asked Questions
When does the warning occur?
It occurs when function tracing or Kprobes is enabled and the CPU enters an ACPI Low Power Idle state. The affected idle-entry path runs after RCU has been disabled on the local CPU.
How can I recognize an affected system?
Affected systems can emit an RCU warning naming acpi_idle_lpi_enter, such as “RCU not on for: acpi_idle_lpi_enter”, with a trace involving function_trace_call.
What can be done if the update cannot be applied immediately?
Avoid enabling function tracing or Kprobes on systems that enter ACPI LPI states. The resolved change prevents ftrace instrumentation in the sensitive cpuidle path.