CVE-2025-21803

Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
27/02/2025
Last modified:
27/02/2025

Description

In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> LoongArch: Fix warnings during S3 suspend<br /> <br /> The enable_gpe_wakeup() function calls acpi_enable_all_wakeup_gpes(),<br /> and the later one may call the preempt_schedule_common() function,<br /> resulting in a thread switch and causing the CPU to be in an interrupt<br /> enabled state after the enable_gpe_wakeup() function returns, leading<br /> to the warnings as follow.<br /> <br /> [ C0] WARNING: ... at kernel/time/timekeeping.c:845 ktime_get+0xbc/0xc8<br /> [ C0] ...<br /> [ C0] Call Trace:<br /> [ C0] [] show_stack+0x64/0x188<br /> [ C0] [] dump_stack_lvl+0x60/0x88<br /> [ C0] [] __warn+0x8c/0x148<br /> [ C0] [] report_bug+0x1c0/0x2b0<br /> [ C0] [] do_bp+0x204/0x3b8<br /> [ C0] [] exception_handlers+0x1924/0x10000<br /> [ C0] [] ktime_get+0xbc/0xc8<br /> [ C0] [] tick_sched_timer+0x30/0xb0<br /> [ C0] [] __hrtimer_run_queues+0x160/0x378<br /> [ C0] [] hrtimer_interrupt+0x144/0x388<br /> [ C0] [] constant_timer_interrupt+0x38/0x48<br /> [ C0] [] __handle_irq_event_percpu+0x64/0x1e8<br /> [ C0] [] handle_irq_event_percpu+0x20/0x80<br /> [ C0] [] handle_percpu_irq+0x5c/0x98<br /> [ C0] [] generic_handle_domain_irq+0x30/0x48<br /> [ C0] [] handle_cpu_irq+0x70/0xa8<br /> [ C0] [] handle_loongarch_irq+0x30/0x48<br /> [ C0] [] do_vint+0x80/0xe0<br /> [ C0] [] finish_task_switch.isra.0+0x8c/0x2a8<br /> [ C0] [] __schedule+0x314/0xa48<br /> [ C0] [] schedule+0x58/0xf0<br /> [ C0] [] worker_thread+0x224/0x498<br /> [ C0] [] kthread+0xf8/0x108<br /> [ C0] [] ret_from_kernel_thread+0xc/0xa4<br /> [ C0]<br /> [ C0] ---[ end trace 0000000000000000 ]---<br /> <br /> The root cause is acpi_enable_all_wakeup_gpes() uses a mutex to protect<br /> acpi_hw_enable_all_wakeup_gpes(), and acpi_ut_acquire_mutex() may cause<br /> a thread switch. Since there is no longer concurrent execution during<br /> loongarch_acpi_suspend(), we can call acpi_hw_enable_all_wakeup_gpes()<br /> directly in enable_gpe_wakeup().<br /> <br /> The solution is similar to commit 22db06337f590d01 ("ACPI: sleep: Avoid<br /> breaking S3 wakeup due to might_sleep()").

Impact