[1/1] drm/msm/dpu: Fix error return code in dpu_mdss_init()

Message ID 20210508024254.1877-1-thunder.leizhen@huawei.com
State New
Headers show
Series
  • [1/1] drm/msm/dpu: Fix error return code in dpu_mdss_init()
Related show

Commit Message

Zhen Lei May 8, 2021, 2:42 a.m.
Fix to return a negative error code from the error handling case instead
of 0, as done elsewhere in this function.

Fixes: 070e64dc1bbc ("drm/msm/dpu: Convert to a chained irq chip")
Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

---
 drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

-- 
2.25.1

Comments

Stephen Boyd May 8, 2021, 6:09 a.m. | #1
Quoting Zhen Lei (2021-05-07 19:42:54)
> Fix to return a negative error code from the error handling case instead
> of 0, as done elsewhere in this function.
>
> Fixes: 070e64dc1bbc ("drm/msm/dpu: Convert to a chained irq chip")
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
> ---
>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> index 06b56fec04e0..1b6c9fb500a1 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> @@ -253,8 +253,10 @@ int dpu_mdss_init(struct drm_device *dev)
>                 goto irq_domain_error;
>
>         irq = platform_get_irq(pdev, 0);
> -       if (irq < 0)
> +       if (irq < 0) {
> +               ret = irq;
>                 goto irq_error;
> +       }

It would be even better if ret wasn't assigned to 0 at the start of this
function.

>
>         irq_set_chained_handler_and_data(irq, dpu_mdss_irq,
>                                          dpu_mdss);
Zhen Lei May 8, 2021, 7:55 a.m. | #2
On 2021/5/8 14:09, Stephen Boyd wrote:
> Quoting Zhen Lei (2021-05-07 19:42:54)
>> Fix to return a negative error code from the error handling case instead
>> of 0, as done elsewhere in this function.
>>
>> Fixes: 070e64dc1bbc ("drm/msm/dpu: Convert to a chained irq chip")
>> Reported-by: Hulk Robot <hulkci@huawei.com>
>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>> ---
>>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>> index 06b56fec04e0..1b6c9fb500a1 100644
>> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>> @@ -253,8 +253,10 @@ int dpu_mdss_init(struct drm_device *dev)
>>                 goto irq_domain_error;
>>
>>         irq = platform_get_irq(pdev, 0);
>> -       if (irq < 0)
>> +       if (irq < 0) {
>> +               ret = irq;
>>                 goto irq_error;
>> +       }
> 
> It would be even better if ret wasn't assigned to 0 at the start of this
> function.

The returned error code is not unique.

> 
>>
>>         irq_set_chained_handler_and_data(irq, dpu_mdss_irq,
>>                                          dpu_mdss);
> 
> .
>
Stephen Boyd May 8, 2021, 7:58 a.m. | #3
Quoting Leizhen (ThunderTown) (2021-05-08 00:55:04)
>

>

> On 2021/5/8 14:09, Stephen Boyd wrote:

> > Quoting Zhen Lei (2021-05-07 19:42:54)

> >> Fix to return a negative error code from the error handling case instead

> >> of 0, as done elsewhere in this function.

> >>

> >> Fixes: 070e64dc1bbc ("drm/msm/dpu: Convert to a chained irq chip")

> >> Reported-by: Hulk Robot <hulkci@huawei.com>

> >> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>

> >> ---

> >>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 4 +++-

> >>  1 file changed, 3 insertions(+), 1 deletion(-)

> >>

> >> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c

> >> index 06b56fec04e0..1b6c9fb500a1 100644

> >> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c

> >> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c

> >> @@ -253,8 +253,10 @@ int dpu_mdss_init(struct drm_device *dev)

> >>                 goto irq_domain_error;

> >>

> >>         irq = platform_get_irq(pdev, 0);

> >> -       if (irq < 0)

> >> +       if (irq < 0) {

> >> +               ret = irq;

> >>                 goto irq_error;

> >> +       }

> >

> > It would be even better if ret wasn't assigned to 0 at the start of this

> > function.

>

> The returned error code is not unique.

>


What does it mean? I was saying this

----8<----
diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
index cd4078807db1..0fcf190f6322 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
@@ -263,7 +263,7 @@ int dpu_mdss_init(struct drm_device *dev)
 	struct msm_drm_private *priv = dev->dev_private;
 	struct dpu_mdss *dpu_mdss;
 	struct dss_module_power *mp;
-	int ret = 0;
+	int ret;
 	int irq;

 	dpu_mdss = devm_kzalloc(dev->dev, sizeof(*dpu_mdss), GFP_KERNEL);
@@ -297,8 +297,10 @@ int dpu_mdss_init(struct drm_device *dev)
 		goto irq_domain_error;

 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0)
+	if (irq < 0) {
+		ret = irq;
 		goto irq_error;
+	}

 	irq_set_chained_handler_and_data(irq, dpu_mdss_irq,
 					 dpu_mdss);
@@ -309,7 +311,7 @@ int dpu_mdss_init(struct drm_device *dev)

 	dpu_mdss_icc_request_bw(priv->mdss);

-	return ret;
+	return 0;

 irq_error:
 	_dpu_mdss_irq_domain_fini(dpu_mdss);
Zhen Lei May 8, 2021, 8:17 a.m. | #4
On 2021/5/8 15:58, Stephen Boyd wrote:
> Quoting Leizhen (ThunderTown) (2021-05-08 00:55:04)
>>
>>
>> On 2021/5/8 14:09, Stephen Boyd wrote:
>>> Quoting Zhen Lei (2021-05-07 19:42:54)
>>>> Fix to return a negative error code from the error handling case instead
>>>> of 0, as done elsewhere in this function.
>>>>
>>>> Fixes: 070e64dc1bbc ("drm/msm/dpu: Convert to a chained irq chip")
>>>> Reported-by: Hulk Robot <hulkci@huawei.com>
>>>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>>>> ---
>>>>  drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c | 4 +++-
>>>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>>>> index 06b56fec04e0..1b6c9fb500a1 100644
>>>> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>>>> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
>>>> @@ -253,8 +253,10 @@ int dpu_mdss_init(struct drm_device *dev)
>>>>                 goto irq_domain_error;
>>>>
>>>>         irq = platform_get_irq(pdev, 0);
>>>> -       if (irq < 0)
>>>> +       if (irq < 0) {
>>>> +               ret = irq;
>>>>                 goto irq_error;
>>>> +       }
>>>
>>> It would be even better if ret wasn't assigned to 0 at the start of this
>>> function.
>>
>> The returned error code is not unique.
>>
> 
> What does it mean? I was saying this

Sorry, I misunderstood. I think your opinion is good.

> 
> ----8<----
> diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> index cd4078807db1..0fcf190f6322 100644
> --- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> +++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
> @@ -263,7 +263,7 @@ int dpu_mdss_init(struct drm_device *dev)
>  	struct msm_drm_private *priv = dev->dev_private;
>  	struct dpu_mdss *dpu_mdss;
>  	struct dss_module_power *mp;
> -	int ret = 0;
> +	int ret;
>  	int irq;
> 
>  	dpu_mdss = devm_kzalloc(dev->dev, sizeof(*dpu_mdss), GFP_KERNEL);
> @@ -297,8 +297,10 @@ int dpu_mdss_init(struct drm_device *dev)
>  		goto irq_domain_error;
> 
>  	irq = platform_get_irq(pdev, 0);
> -	if (irq < 0)
> +	if (irq < 0) {
> +		ret = irq;
>  		goto irq_error;
> +	}
> 
>  	irq_set_chained_handler_and_data(irq, dpu_mdss_irq,
>  					 dpu_mdss);
> @@ -309,7 +311,7 @@ int dpu_mdss_init(struct drm_device *dev)
> 
>  	dpu_mdss_icc_request_bw(priv->mdss);
> 
> -	return ret;
> +	return 0;
> 
>  irq_error:
>  	_dpu_mdss_irq_domain_fini(dpu_mdss);
> 
> .
>

Patch

diff --git a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
index 06b56fec04e0..1b6c9fb500a1 100644
--- a/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
+++ b/drivers/gpu/drm/msm/disp/dpu1/dpu_mdss.c
@@ -253,8 +253,10 @@  int dpu_mdss_init(struct drm_device *dev)
 		goto irq_domain_error;
 
 	irq = platform_get_irq(pdev, 0);
-	if (irq < 0)
+	if (irq < 0) {
+		ret = irq;
 		goto irq_error;
+	}
 
 	irq_set_chained_handler_and_data(irq, dpu_mdss_irq,
 					 dpu_mdss);