FAILED: patch "[PATCH] i2c: qup: Add missing unwind goto in qup_i2c_probe()" failed to apply to 5.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.4.y
git checkout FETCH_HEAD
git cherry-pick -x cd9489623c29aa2f8cc07088168afb6e0d5ef06d
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2023071643-deputize-alias-9624@gregkh' --subject-prefix 'PATCH 5.4.y' HEAD^..
Possible dependencies:
cd9489623c29 ("i2c: qup: Add missing unwind goto in qup_i2c_probe()") e42688ed5cf5 ("i2c: busses: remove duplicate dev_err()") e0442d762139 ("i2c: busses: convert to devm_platform_ioremap_resource") 90224e6468e1 ("i2c: drivers: Use generic definitions for bus frequencies")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From cd9489623c29aa2f8cc07088168afb6e0d5ef06d Mon Sep 17 00:00:00 2001
From: Shuai Jiang <[email protected]>
Date: Tue, 18 Apr 2023 21:56:12 +0800
Subject: [PATCH] i2c: qup: Add missing unwind goto in qup_i2c_probe()
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".
drivers/i2c/busses/i2c-qup.c +14 -7
@@ -1752,16 +1752,21 @@ static int qup_i2c_probe(struct platform_device *pdev)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 @@ static int qup_i2c_probe(struct platform_device *pdev) 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);