]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
5.15-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 12:17:29 +0000 (13:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Dec 2025 12:17:29 +0000 (13:17 +0100)
added patches:
i3c-fix-uninitialized-variable-use-in-i2c-setup.patch

queue-5.15/i3c-fix-uninitialized-variable-use-in-i2c-setup.patch [new file with mode: 0644]
queue-5.15/series

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 (file)
index 0000000..9883d98
--- /dev/null
@@ -0,0 +1,45 @@
+From 6cbf8b38dfe3aabe330f2c356949bc4d6a1f034f Mon Sep 17 00:00:00 2001
+From: Jamie Iles <quic_jiles@quicinc.com>
+Date: Tue, 8 Mar 2022 13:42:26 +0000
+Subject: i3c: fix uninitialized variable use in i2c setup
+
+From: Jamie Iles <quic_jiles@quicinc.com>
+
+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 <lkp@intel.com>
+Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Signed-off-by: Jamie Iles <quic_jiles@quicinc.com>
+Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
+Link: https://lore.kernel.org/r/20220308134226.1042367-1-quic_jiles@quicinc.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ 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;
+ }
index 3fee4b05e333030d28ff6305a46e2e1227b97225..d1de9567093c383a2ddd244204d2cfbfaf2ce142 100644 (file)
@@ -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