CVE-2022-49841

serial: imx: Add missing .thaw_noirq hook

published May 1, 2025

CVSS
—
EPSS
0%
Percentile
9.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

serial: imx: Add missing .thaw_noirq hook

The following warning is seen with non-console UART instance when

system hibernates.

[ 37.371969] ------------[ cut here ]------------

[ 37.376599] uart3_root_clk already disabled

[ 37.380810] WARNING: CPU: 0 PID: 296 at drivers/clk/clk.c:952 clk_core_disable+0xa4/0xb0

...

[ 37.506986] Call trace:

[ 37.509432] clk_core_disable+0xa4/0xb0

[ 37.513270] clk_disable+0x34/0x50

[ 37.516672] imx_uart_thaw+0x38/0x5c

[ 37.520250] platform_pm_thaw+0x30/0x6c

[ 37.524089] dpm_run_callback.constprop.0+0x3c/0xd4

[ 37.528972] device_resume+0x7c/0x160

[ 37.532633] dpm_resume+0xe8/0x230

[ 37.536036] hibernation_snapshot+0x288/0x430

[ 37.540397] hibernate+0x10c/0x2e0

[ 37.543798] state_store+0xc4/0xd0

[ 37.547203] kobj_attr_store+0x1c/0x30

[ 37.550953] sysfs_kf_write+0x48/0x60

[ 37.554619] kernfs_fop_write_iter+0x118/0x1ac

[ 37.559063] new_sync_write+0xe8/0x184

[ 37.562812] vfs_write+0x230/0x290

[ 37.566214] ksys_write+0x68/0xf4

[ 37.569529] __arm64_sys_write+0x20/0x2c

[ 37.573452] invoke_syscall.constprop.0+0x50/0xf0

[ 37.578156] do_el0_svc+0x11c/0x150

[ 37.581648] el0_svc+0x30/0x140

[ 37.584792] el0t_64_sync_handler+0xe8/0xf0

[ 37.588976] el0t_64_sync+0x1a0/0x1a4

[ 37.592639] ---[ end trace 56e22eec54676d75 ]---

On hibernating, pm core calls into related hooks in sequence like:

.freeze

.freeze_noirq

.thaw_noirq

.thaw

With .thaw_noirq hook being absent, the clock will be disabled in a

unbalanced call which results the warning above.

imx_uart_freeze()

clk_prepare_enable()

imx_uart_suspend_noirq()

clk_disable()

imx_uart_thaw

clk_disable_unprepare()

Adding the missing .thaw_noirq hook as imx_uart_resume_noirq() will have

the call sequence corrected as below and thus fix the warning.

imx_uart_freeze()

clk_prepare_enable()

imx_uart_suspend_noirq()

clk_disable()

imx_uart_resume_noirq()

clk_enable()

imx_uart_thaw

clk_disable_unprepare()

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00202 · 9.7th percentile
Published
2025-05-01T14:09Z
EPSS history
Timeline
  • 01 MAY 14:09Z
    serial: imx: Add missing .thaw_noirq hook
    cvelistv5