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: 10c5a8425968 ("i2c: qup: New bus driver for the Qualcomm QUP I2C controller")
Fixes: 515da746983b ("i2c: qup: add ACPI support")
Signed-off-by: Shuai Jiang <[email protected]>
Reviewed-by: Dongliang Mu <[email protected]>
---
The issue is found by static analysis and remains untested.
---
drivers/i2c/busses/i2c-qup.c | 21 ++++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
index 2e153f2f71b6..78682388e02e 100644
--- a/drivers/i2c/busses/i2c-qup.c
+++ b/drivers/i2c/busses/i2c-qup.c
@@ -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);
--
2.25.1
> -----原始邮件-----
> 发件人: "Shuai Jiang" <[email protected]>
> 发送时间: 2023-04-18 21:56:12 (星期二)
> 收件人: "Andy Gross" <[email protected]>, "Bjorn Andersson" <[email protected]>, "Konrad Dybcio" <[email protected]>, "Wolfram Sang" <[email protected]>, "Ivan T. Ivanov" <[email protected]>, "Sricharan R" <[email protected]>, "Naveen Kaje" <[email protected]>, "Austin Christ" <[email protected]>
> 抄送: [email protected], "Shuai Jiang" <[email protected]>, "Andy Gross" <[email protected]>, [email protected], [email protected], [email protected]
> 主题: [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".
>
> Fixes: 10c5a8425968 ("i2c: qup: New bus driver for the Qualcomm QUP I2C controller")
> Fixes: 515da746983b ("i2c: qup: add ACPI support")
> Signed-off-by: Shuai Jiang <[email protected]>
> Reviewed-by: Dongliang Mu <[email protected]>
> ---
> The issue is found by static analysis and remains untested.
> ---
> drivers/i2c/busses/i2c-qup.c | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
> index 2e153f2f71b6..78682388e02e 100644
> --- a/drivers/i2c/busses/i2c-qup.c
> +++ b/drivers/i2c/busses/i2c-qup.c
> @@ -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);
> --
> 2.25.1
ping?
On Fri, May 05, 2023 at 09:18:16AM +0800, [email protected] wrote:
>
> > -----原始邮件-----
> > 发件人: "Shuai Jiang" <[email protected]>
> > 发送时间: 2023-04-18 21:56:12 (星期二)
^^^^^^^^^^
You can't ping the list when the merge window is open. You have to wait
for a couple weeks after.
The weeks before and during the merge window are busy and then afterward
maintainers have to deal with the backlog of postponed stuff...
Just be patient.
regards,
dan carpenter
On Tue, Apr 18, 2023 at 09:56:12PM +0800, Shuai Jiang wrote:
> 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: 10c5a8425968 ("i2c: qup: New bus driver for the Qualcomm QUP I2C controller")
> Fixes: 515da746983b ("i2c: qup: add ACPI support")
These are not the correct Fixes, the correct fix is:
Fixes: 9cedf3b2f099 ("i2c: qup: Add bam dma capabilities")
> Signed-off-by: Shuai Jiang <[email protected]>
> Reviewed-by: Dongliang Mu <[email protected]>
and
Cc: <[email protected]> # v4.6+
Patch looks good:
Reviewed-by: Andi Shyti <[email protected]>
Andi
> ---
> The issue is found by static analysis and remains untested.
> ---
> drivers/i2c/busses/i2c-qup.c | 21 ++++++++++++++-------
> 1 file changed, 14 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/i2c/busses/i2c-qup.c b/drivers/i2c/busses/i2c-qup.c
> index 2e153f2f71b6..78682388e02e 100644
> --- a/drivers/i2c/busses/i2c-qup.c
> +++ b/drivers/i2c/busses/i2c-qup.c
> @@ -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);
> --
> 2.25.1
>
On Tue, Apr 18, 2023 at 09:56:12PM +0800, Shuai Jiang wrote:
> 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: 10c5a8425968 ("i2c: qup: New bus driver for the Qualcomm QUP I2C controller")
> Fixes: 515da746983b ("i2c: qup: add ACPI support")
> Signed-off-by: Shuai Jiang <[email protected]>
> Reviewed-by: Dongliang Mu <[email protected]>
Applied to for-current, thanks! Thanks Andi, for the proper Fixes tag!