2022-04-22 18:39:02

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] drm: msm: fix error check return value of irq_of_parse_and_map()

On Fri, 22 Apr 2022 at 11:52, <[email protected]> wrote:
>
> From: Lv Ruyi <[email protected]>
>
> The irq_of_parse_and_map() function returns 0 on failure, and does not
> return an negative value.
>
> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: Lv Ruyi <[email protected]>

Reviewed-by: Dmitry Baryshkov <[email protected]>

> ---
> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> index 3b92372e7bdf..1fb1ed9e95d9 100644
> --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> @@ -570,7 +570,7 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev)
> }
>
> irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
> - if (irq < 0) {
> + if (!irq) {
> ret = irq;
> DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret);
> goto fail;
> --
> 2.25.1
>


--
With best wishes
Dmitry


2022-04-22 23:39:08

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH] drm: msm: fix error check return value of irq_of_parse_and_map()

On 22/04/2022 13:42, Dmitry Baryshkov wrote:
> On Fri, 22 Apr 2022 at 11:52, <[email protected]> wrote:
>>
>> From: Lv Ruyi <[email protected]>
>>
>> The irq_of_parse_and_map() function returns 0 on failure, and does not
>> return an negative value.
>>
>> Reported-by: Zeal Robot <[email protected]>
>> Signed-off-by: Lv Ruyi <[email protected]>
>
> Reviewed-by: Dmitry Baryshkov <[email protected]>
>
>> ---
>> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
>> index 3b92372e7bdf..1fb1ed9e95d9 100644
>> --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
>> +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
>> @@ -570,7 +570,7 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev)
>> }
>>
>> irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
>> - if (irq < 0) {
>> + if (!irq) {
>> ret = irq;

As noted by Stephen, this will cause the function to prematurely return
0 (success).

>> DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret);
>> goto fail;
>> --
>> 2.25.1
>>
>
>


--
With best wishes
Dmitry

2022-04-24 10:48:58

by CGEL

[permalink] [raw]
Subject: [PATCH v2] drm: msm: fix error check return value of irq_of_parse_and_map()

From: Lv Ruyi <[email protected]>

The irq_of_parse_and_map() function returns 0 on failure, and does not
return an negative value.

Reported-by: Zeal Robot <[email protected]>
Signed-off-by: Lv Ruyi <[email protected]>
---
v2: don't print irq, and return ERR_PTR(-EINVAL)
---
drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
index 3b92372e7bdf..44e395e59df9 100644
--- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
+++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
@@ -570,9 +570,9 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev)
}

irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
- if (irq < 0) {
- ret = irq;
- DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret);
+ if (!irq) {
+ ret = -EINVAL;
+ DRM_DEV_ERROR(&pdev->dev, "failed to get irq\n");
goto fail;
}

--
2.25.1

2022-04-25 23:54:57

by Dmitry Baryshkov

[permalink] [raw]
Subject: Re: [PATCH v2] drm: msm: fix error check return value of irq_of_parse_and_map()

On 24/04/2022 06:19, [email protected] wrote:
> From: Lv Ruyi <[email protected]>
>
> The irq_of_parse_and_map() function returns 0 on failure, and does not
> return an negative value.
>
> Reported-by: Zeal Robot <[email protected]>
> Signed-off-by: Lv Ruyi <[email protected]>

Reviewed-by: Dmitry Baryshkov <[email protected]>

> ---
> v2: don't print irq, and return ERR_PTR(-EINVAL)
> ---
> drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> index 3b92372e7bdf..44e395e59df9 100644
> --- a/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> +++ b/drivers/gpu/drm/msm/disp/mdp5/mdp5_kms.c
> @@ -570,9 +570,9 @@ struct msm_kms *mdp5_kms_init(struct drm_device *dev)
> }
>
> irq = irq_of_parse_and_map(pdev->dev.of_node, 0);
> - if (irq < 0) {
> - ret = irq;
> - DRM_DEV_ERROR(&pdev->dev, "failed to get irq: %d\n", ret);
> + if (!irq) {
> + ret = -EINVAL;
> + DRM_DEV_ERROR(&pdev->dev, "failed to get irq\n");
> goto fail;
> }
>


--
With best wishes
Dmitry