]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
6.1-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 08:46:07 +0000 (10:46 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jul 2023 08:46:07 +0000 (10:46 +0200)
added patches:
i2c-qup-add-missing-unwind-goto-in-qup_i2c_probe.patch

queue-6.1/i2c-qup-add-missing-unwind-goto-in-qup_i2c_probe.patch [new file with mode: 0644]
queue-6.1/series

diff --git a/queue-6.1/i2c-qup-add-missing-unwind-goto-in-qup_i2c_probe.patch b/queue-6.1/i2c-qup-add-missing-unwind-goto-in-qup_i2c_probe.patch
new file mode 100644 (file)
index 0000000..8618497
--- /dev/null
@@ -0,0 +1,75 @@
+From cd9489623c29aa2f8cc07088168afb6e0d5ef06d Mon Sep 17 00:00:00 2001
+From: Shuai Jiang <d202180596@hust.edu.cn>
+Date: Tue, 18 Apr 2023 21:56:12 +0800
+Subject: i2c: qup: Add missing unwind goto in qup_i2c_probe()
+
+From: Shuai Jiang <d202180596@hust.edu.cn>
+
+commit cd9489623c29aa2f8cc07088168afb6e0d5ef06d upstream.
+
+Smatch Warns:
+       drivers/i2c/busses/i2c-qup.c:1784 qup_i2c_probe()
+       warn: missing unwind goto?
+
+The goto label "fail_runtime" and "fail" will disable qup->pclk,
+but here qup->pclk failed to obtain, in order to be consistent,
+change the direct return to goto label "fail_dma".
+
+Fixes: 9cedf3b2f099 ("i2c: qup: Add bam dma capabilities")
+Signed-off-by: Shuai Jiang <d202180596@hust.edu.cn>
+Reviewed-by: Dongliang Mu <dzm91@hust.edu.cn>
+Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
+Signed-off-by: Wolfram Sang <wsa@kernel.org>
+Cc: <stable@vger.kernel.org> # v4.6+
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/i2c/busses/i2c-qup.c |   21 ++++++++++++++-------
+ 1 file changed, 14 insertions(+), 7 deletions(-)
+
+--- a/drivers/i2c/busses/i2c-qup.c
++++ b/drivers/i2c/busses/i2c-qup.c
+@@ -1752,16 +1752,21 @@ nodma:
+       if (!clk_freq || clk_freq > I2C_MAX_FAST_MODE_PLUS_FREQ) {
+               dev_err(qup->dev, "clock frequency not supported %d\n",
+                       clk_freq);
+-              return -EINVAL;
++              ret = -EINVAL;
++              goto fail_dma;
+       }
+       qup->base = devm_platform_ioremap_resource(pdev, 0);
+-      if (IS_ERR(qup->base))
+-              return PTR_ERR(qup->base);
++      if (IS_ERR(qup->base)) {
++              ret = PTR_ERR(qup->base);
++              goto fail_dma;
++      }
+       qup->irq = platform_get_irq(pdev, 0);
+-      if (qup->irq < 0)
+-              return qup->irq;
++      if (qup->irq < 0) {
++              ret = qup->irq;
++              goto fail_dma;
++      }
+       if (has_acpi_companion(qup->dev)) {
+               ret = device_property_read_u32(qup->dev,
+@@ -1775,13 +1780,15 @@ nodma:
+               qup->clk = devm_clk_get(qup->dev, "core");
+               if (IS_ERR(qup->clk)) {
+                       dev_err(qup->dev, "Could not get core clock\n");
+-                      return PTR_ERR(qup->clk);
++                      ret = PTR_ERR(qup->clk);
++                      goto fail_dma;
+               }
+               qup->pclk = devm_clk_get(qup->dev, "iface");
+               if (IS_ERR(qup->pclk)) {
+                       dev_err(qup->dev, "Could not get iface clock\n");
+-                      return PTR_ERR(qup->pclk);
++                      ret = PTR_ERR(qup->pclk);
++                      goto fail_dma;
+               }
+               qup_i2c_enable_clocks(qup);
+               src_clk_freq = clk_get_rate(qup->clk);
index 4609c43c143a8677fe96c5bd325f9316a0dcb3a9..3725563a94e032e66057c2e03fe97143a917c40b 100644 (file)
@@ -535,3 +535,4 @@ dm-ioctl-avoid-double-fetch-of-version.patch
 extcon-usbc-tusb320-convert-to-i2c-s-.probe_new.patch
 extcon-usbc-tusb320-unregister-typec-port-on-driver-.patch
 btrfs-do-not-bug_on-on-tree-mod-log-failure-at-balan.patch
+i2c-qup-add-missing-unwind-goto-in-qup_i2c_probe.patch