[SRU][F/J][PATCH 0/3] CVE-2024-40965

Massimiliano Pellizzer massimiliano.pellizzer at canonical.com
Wed Nov 20 18:09:23 UTC 2024


[Impact]

i2c: lpi2c: Avoid calling clk_get_rate during transfer

Instead of repeatedly calling clk_get_rate for each transfer, lock
the clock rate and cache the value.

A deadlock has been observed while adding tlv320aic32x4 audio codec to
the system. When this clock provider adds its clock, the clk mutex is
locked already, it needs to access i2c, which in return needs the mutex
for clk_get_rate as well.

[Fix]

Oracular: Not affected
Noble:    Fixed
Jammy: 
- Cherry picked b0cde62e4c548 which is a prereq of the fix commit
- Cherry picked 7f1dd39aedfcc which is a follow-up of b0cde62e4c548
- Backported the fix commit

Focal:    Applied jammy patches
Bionic:   Work in progress
Xenial:   Not affected

[Test Case]

Compile tested only.

[Where problems could occur]

The fix affects the I2C subsystem, in particular the i2c-imx-lpi2c
driver. An issue with this fix may lead to kernel crashes during I2C
transfers or when initializing I2C devices. Additionally, users may
observe system instability or hangs when accessing devices connected
via the I2C bus.

Alexander Stein (1):
  i2c: lpi2c: Avoid calling clk_get_rate during transfer

Uwe Kleine-König (2):
  clk: Add a devm variant of clk_rate_exclusive_get()
  clk: Provide !COMMON_CLK dummy for devm_clk_rate_exclusive_get()

 drivers/clk/clk.c                  | 19 +++++++++++++++++++
 drivers/i2c/busses/i2c-imx-lpi2c.c | 18 +++++++++++++++++-
 include/linux/clk.h                | 17 +++++++++++++++++
 3 files changed, 53 insertions(+), 1 deletion(-)

-- 
2.43.0




More information about the kernel-team mailing list