From: Greg Kroah-Hartman Date: Thu, 18 Dec 2025 12:17:29 +0000 (+0100) Subject: 5.15-stable patches X-Git-Tag: v6.12.63~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b3388b1877d886e4492464715d30cf73e8cafaed;p=thirdparty%2Fkernel%2Fstable-queue.git 5.15-stable patches added patches: i3c-fix-uninitialized-variable-use-in-i2c-setup.patch --- diff --git a/queue-5.15/i3c-fix-uninitialized-variable-use-in-i2c-setup.patch b/queue-5.15/i3c-fix-uninitialized-variable-use-in-i2c-setup.patch new file mode 100644 index 0000000000..9883d98fc5 --- /dev/null +++ b/queue-5.15/i3c-fix-uninitialized-variable-use-in-i2c-setup.patch @@ -0,0 +1,45 @@ +From 6cbf8b38dfe3aabe330f2c356949bc4d6a1f034f Mon Sep 17 00:00:00 2001 +From: Jamie Iles +Date: Tue, 8 Mar 2022 13:42:26 +0000 +Subject: i3c: fix uninitialized variable use in i2c setup + +From: Jamie Iles + +commit 6cbf8b38dfe3aabe330f2c356949bc4d6a1f034f upstream. + +Commit 31b9887c7258 ("i3c: remove i2c board info from i2c_dev_desc") +removed the boardinfo from i2c_dev_desc to decouple device enumeration from +setup but did not correctly lookup the i2c_dev_desc to store the new +device, instead dereferencing an uninitialized variable. + +Lookup the device that has already been registered by address to store +the i2c client device. + +Fixes: 31b9887c7258 ("i3c: remove i2c board info from i2c_dev_desc") +Reported-by: kernel test robot +Cc: Alexandre Belloni +Signed-off-by: Jamie Iles +Signed-off-by: Alexandre Belloni +Link: https://lore.kernel.org/r/20220308134226.1042367-1-quic_jiles@quicinc.com +Signed-off-by: Greg Kroah-Hartman +--- + drivers/i3c/master.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +--- a/drivers/i3c/master.c ++++ b/drivers/i3c/master.c +@@ -2322,8 +2322,13 @@ static int i3c_master_i2c_adapter_init(s + * We silently ignore failures here. The bus should keep working + * correctly even if one or more i2c devices are not registered. + */ +- list_for_each_entry(i2cboardinfo, &master->boardinfo.i2c, node) ++ list_for_each_entry(i2cboardinfo, &master->boardinfo.i2c, node) { ++ i2cdev = i3c_master_find_i2c_dev_by_addr(master, ++ i2cboardinfo->base.addr); ++ if (WARN_ON(!i2cdev)) ++ continue; + i2cdev->dev = i2c_new_client_device(adap, &i2cboardinfo->base); ++ } + + return 0; + } diff --git a/queue-5.15/series b/queue-5.15/series index 3fee4b05e3..d1de956709 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -204,3 +204,4 @@ netfilter-nf_conncount-garbage-collection-is-not-skipped-when-jiffies-wrap-aroun coresight-etm4x-correct-polling-idle-bit.patch spi-tegra210-quad-fix-validate-combined-sequence.patch spi-tegra210-quad-fix-x1_x2_x4-encoding-and-support-x4-transfers.patch +i3c-fix-uninitialized-variable-use-in-i2c-setup.patch