[PATCH] soc: fsl: cpm1: qmc: Fix qmc_probe() warn missing error code ret

Pei Xiao posted 1 patch 1 day, 2 hours ago
drivers/soc/fsl/qe/qmc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
[PATCH] soc: fsl: cpm1: qmc: Fix qmc_probe() warn missing error code ret
Posted by Pei Xiao 1 day, 2 hours ago
platform_get_irq() may failed,but ret still equals to 0,
will cacuse qmc_probe() return 0 but fail.

Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/r/202411051350.KNy6ZIWA-lkp@intel.com/
Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC")
Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
---
 drivers/soc/fsl/qe/qmc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c
index 19cc581b06d0..a78768cd6007 100644
--- a/drivers/soc/fsl/qe/qmc.c
+++ b/drivers/soc/fsl/qe/qmc.c
@@ -2004,8 +2004,10 @@ static int qmc_probe(struct platform_device *pdev)
 
 	/* Set the irq handler */
 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0)
+	if (irq < 0) {
+		ret = -EINVAL;
 		goto err_exit_xcc;
+	}
 	ret = devm_request_irq(qmc->dev, irq, qmc_irq_handler, 0, "qmc", qmc);
 	if (ret < 0)
 		goto err_exit_xcc;
-- 
2.34.1
Re: [PATCH] soc: fsl: cpm1: qmc: Fix qmc_probe() warn missing error code ret
Posted by Herve Codina 1 day, 1 hour ago
Hi Pei,

On Wed, 20 Nov 2024 17:38:20 +0800
Pei Xiao <xiaopei01@kylinos.cn> wrote:

> platform_get_irq() may failed,but ret still equals to 0,
> will cacuse qmc_probe() return 0 but fail.
> 
> Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> Closes: https://lore.kernel.org/r/202411051350.KNy6ZIWA-lkp@intel.com/
> Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC")
> Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
> ---
>  drivers/soc/fsl/qe/qmc.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c
> index 19cc581b06d0..a78768cd6007 100644
> --- a/drivers/soc/fsl/qe/qmc.c
> +++ b/drivers/soc/fsl/qe/qmc.c
> @@ -2004,8 +2004,10 @@ static int qmc_probe(struct platform_device *pdev)
>  
>  	/* Set the irq handler */
>  	irq = platform_get_irq(pdev, 0);
> -	if (irq < 0)
> +	if (irq < 0) {
> +		ret = -EINVAL;
>  		goto err_exit_xcc;
> +	}
>  	ret = devm_request_irq(qmc->dev, irq, qmc_irq_handler, 0, "qmc", qmc);
>  	if (ret < 0)
>  		goto err_exit_xcc;

I already send a fix:
https://lore.kernel.org/all/20241105145623.401528-1-herve.codina@bootlin.com/

And it is available in the following PR done by Christophe:
https://lore.kernel.org/all/c3c4961b-fe2a-4fcc-a7a1-f8b5352e09a2@csgroup.eu/

Best regards,
Hervé
Re: [PATCH] soc: fsl: cpm1: qmc: Fix qmc_probe() warn missing error code ret
Posted by Pei Xiao 11 hours ago

在 2024/11/20 19:05, Herve Codina 写道:
> Hi Pei,
> 
> On Wed, 20 Nov 2024 17:38:20 +0800
> Pei Xiao <xiaopei01@kylinos.cn> wrote:
> 
>> platform_get_irq() may failed,but ret still equals to 0,
>> will cacuse qmc_probe() return 0 but fail.
>>
>> Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
>> Closes: https://lore.kernel.org/r/202411051350.KNy6ZIWA-lkp@intel.com/
>> Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC")
>> Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
>> ---
>>   drivers/soc/fsl/qe/qmc.c | 4 +++-
>>   1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c
>> index 19cc581b06d0..a78768cd6007 100644
>> --- a/drivers/soc/fsl/qe/qmc.c
>> +++ b/drivers/soc/fsl/qe/qmc.c
>> @@ -2004,8 +2004,10 @@ static int qmc_probe(struct platform_device *pdev)
>>   
>>   	/* Set the irq handler */
>>   	irq = platform_get_irq(pdev, 0);
>> -	if (irq < 0)
>> +	if (irq < 0) {
>> +		ret = -EINVAL;
>>   		goto err_exit_xcc;
>> +	}
>>   	ret = devm_request_irq(qmc->dev, irq, qmc_irq_handler, 0, "qmc", qmc);
>>   	if (ret < 0)
>>   		goto err_exit_xcc;
> 
> I already send a fix:
> https://lore.kernel.org/all/20241105145623.401528-1-herve.codina@bootlin.com/
> 

ok, I'm so sorry for send repeated patch.

Tnanks!
Pei.
> And it is available in the following PR done by Christophe:
> https://lore.kernel.org/all/c3c4961b-fe2a-4fcc-a7a1-f8b5352e09a2@csgroup.eu/
> 
> Best regards,
> Hervé
Re: [PATCH] soc: fsl: cpm1: qmc: Fix qmc_probe() warn missing error code ret
Posted by Christophe Leroy 1 day, 1 hour ago

Le 20/11/2024 à 10:38, Pei Xiao a écrit :
> [Vous ne recevez pas souvent de courriers de xiaopei01@kylinos.cn. Découvrez pourquoi ceci est important à https://aka.ms/LearnAboutSenderIdentification ]
> 
> platform_get_irq() may failed,but ret still equals to 0,
> will cacuse qmc_probe() return 0 but fail.
> 
> Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
> Closes: https://lore.kernel.org/r/202411051350.KNy6ZIWA-lkp@intel.com/
> Fixes: 3178d58e0b97 ("soc: fsl: cpm1: Add support for QMC")
> Signed-off-by: Pei Xiao <xiaopei01@kylinos.cn>
> ---
>   drivers/soc/fsl/qe/qmc.c | 4 +++-
>   1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/soc/fsl/qe/qmc.c b/drivers/soc/fsl/qe/qmc.c
> index 19cc581b06d0..a78768cd6007 100644
> --- a/drivers/soc/fsl/qe/qmc.c
> +++ b/drivers/soc/fsl/qe/qmc.c
> @@ -2004,8 +2004,10 @@ static int qmc_probe(struct platform_device *pdev)
> 
>          /* Set the irq handler */
>          irq = platform_get_irq(pdev, 0);
> -       if (irq < 0)
> +       if (irq < 0) {
> +               ret = -EINVAL;

Why force -EINVAL ?

What if platform_get_irq() returns -EPROBE_DEFER ?

Anyway, this problem is already fixed by 
https://patchwork.ozlabs.org/project/linuxppc-dev/patch/20241105145623.401528-1-herve.codina@bootlin.com/ 
which is on its way to mainline.

>                  goto err_exit_xcc;
> +       }
>          ret = devm_request_irq(qmc->dev, irq, qmc_irq_handler, 0, "qmc", qmc);
>          if (ret < 0)
>                  goto err_exit_xcc;
> --
> 2.34.1
>