drivers/soc/fsl/qe/qmc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
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
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é
在 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é
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
>
© 2016 - 2026 Red Hat, Inc.